小编use*_*446的帖子

你如何使用ExportFactory <T>

我是MEF的新手,正在尝试使用ExportFactory.我可以使用ExportFactory根据用户插入对象创建列表吗?样本将类似于下面显示的内容.我可能不理解ExportFactory的使用,因为在运行时我在组合期间得到如下所示的错误.

1)没有找到符合约束'((exportDefinition.ContractName =="System.ComponentModel.Composition.ExportFactory(CommonLibrary.IFoo)")AndAlso(exportDefinition.Metadata.ContainsKey("ExportTypeIdentity")AndAlso"System"的有效导出). ComponentModel.Composition.ExportFactory(CommonLibrary.IFoo)".Equals(exportDefinition.Metadata.get_Item("ExportTypeIdentity"))))',无效导出可能已被拒绝.

 class Program
{
    static void Main(string[] args)
    {
        Test mytest = new Test();
    }
}

public class Test : IPartImportsSatisfiedNotification
{
    [Import]
    private ExportFactory<IFoo> FooFactory { get; set; }

    public Test()
    {
        CompositionInitializer.SatisfyImports(this);
        CreateComponent("Amp");
        CreateComponent("Passive");
    }

    public void OnImportsSatisfied()
    {
        int i = 0;
    }

    public void CreateComponent(string name)
    {
        var componentExport = FooFactory.CreateExport();
        var comp = componentExport.Value;
    }
}

public interface IFoo
{
    double Name { get; set; }
}

[ExportMetadata("CompType", "Foo1")]
[Export(typeof(IFoo))]
[PartCreationPolicy(System.ComponentModel.Composition.CreationPolicy.NonShared)]
public …
Run Code Online (Sandbox Code Playgroud)

c# mef

3
推荐指数
1
解决办法
7211
查看次数

根据xaml中的主题更改ImageButton源

我想根据主题(即浅色与深色)更改 xaml 中 ImageButton 的来源。我收到 System.NullReferenceException“未将对象引用设置为对象的实例。” 当我使用以下内容时:

<ImageButton
        Grid.Row="1"
        Margin="10"
        Command="{Binding CreateCommand}"
        Source="{AppThemeBinding Light=add_box_black_48dp.svg, Dark=add_box_light_48dp.svg}"
        HorizontalOptions="End"
        VerticalOptions="End"/>
Run Code Online (Sandbox Code Playgroud)

如果我将源更改为以下内容,一切正常

Source="add_box_white_48dp"
Run Code Online (Sandbox Code Playgroud)

我可以使用 AppThemeBinding 以这种方式更改 ImageButton 源吗

<于 2022 年 6 月 4 日编辑,以显示有效案例和无效案例的 xaml。还更改了 svg 文件的名称以反映浅色和深色情况>

我正在使用 Visual Studio Community 2022(64 位)- 预览版 17.3.0 预览版 1.1

此 ImageButton xaml 引发异常:

<ImageButton
    Margin="10"
    Command="{Binding CreateNewAccountCommand}"
    Source="{AppThemeBinding Light=add_light.svg, Dark=add_dark.svg}"
    HorizontalOptions="End"
    VerticalOptions="End"
    BackgroundColor="#376489"
    CornerRadius="8"
    WidthRequest="36"
    HeightRequest="36">
</ImageButton>
Run Code Online (Sandbox Code Playgroud)

此 ImageButton xaml 有效且不会引发异常

<ImageButton
    Margin="10"
    Command="{Binding CreateNewAccountCommand}"
    Source="add_light.svg"
    HorizontalOptions="End"
    VerticalOptions="End"
    BackgroundColor="#abdbe3"
    CornerRadius="8"
    WidthRequest="36"
    HeightRequest="36">
</ImageButton>
Run Code Online (Sandbox Code Playgroud)

这也有效并且不会抛出异常 …

maui .net-maui

3
推荐指数
1
解决办法
1335
查看次数

标签 统计

.net-maui ×1

c# ×1

maui ×1

mef ×1