gpt4 book ai didi

wpf - MEF 和 WPF 自定义导入定义

转载 作者:行者123 更新时间:2023-12-01 04:11:17 24 4
gpt4 key购买 nike

我有这个想法尝试使用自定义 IMPORT 属性来根据条件新建一个类。例如,如果我有:

[Import("Position_32")] 如果我运行的是 32 位操作系统,这应该存在,然后:

[Import("Position_64")] 如果我运行 64 位操作系统。有没有办法根据条件使属性的类型名称动态化?

从概念上讲,它可能看起来像这样:

[Import(((IsWIN64()) ? "Position_64": "Position_32"))] 这不起作用,因为类型名称需要是常量。

我想让适当的职位类别的更新尽可能透明。我的意思是我使用 funcs 做了一个基于工厂的方法来获得我想要的效果,但我很想为此使用 MEF。想法?

非常感谢,

大卫

最佳答案

您可以使用 ExportMetadataAttribute像这样:

[Import("Position")]
[ExportMetadata("Platform", "32bit")]
public YourType ...

然后,当你去导入时,使用:
 [ImportMany]
public Lazy<YourType,IDictionary<string,object>>[] Positions { get; set; }

然后您可以查看 Dictionary用于适当的元数据,并在运行时使用该特定平台。

此外,您可以为强类型元数据(而不是字符串)创建自定义接口(interface)。详情见 Exports and Metadata .

关于wpf - MEF 和 WPF 自定义导入定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6127040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com