MEF 导入属性
使用 MEF,我知道您可以执行此操作来导入您的接口:
class MyClass
{
[Import(typeof(IUser))]
private IUser m_userName;
}
我可以在方法内执行类似的操作吗?例如,下面的代码无法编译:
class MyClass
{
public void DoWork()
{
[Import(typeof(IUser))]
IUser userName;
userName.dosomething();
}
}
Using MEF, I know you can do this to import your interface:
class MyClass
{
[Import(typeof(IUser))]
private IUser m_userName;
}
Can I do something similar but within the method? For example, this below does not compile:
class MyClass
{
public void DoWork()
{
[Import(typeof(IUser))]
IUser userName;
userName.dosomething();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用以下代码:
其中“container”是 CompositionContainer 实例:
Use this code:
Where 'container' is the CompositionContainer instance:
正如您所看到的,您不能以这种方式使用导入。事实上,您永远无法在方法代码中使用属性,因此无法在方法中使用该属性。
但是,您可以使用容器查找给定类型的导出,如下所示:
As you've seen, you can't use Imports in that way. In fact you can't ever use an attribute inside method code, so there would be no way to use the attribute in a method.
You can however find exports of a given type by using the container, something like this: