从仅给定 Type 实例的 MEF 容器中获取导出

发布于 2024-07-25 06:56:17 字数 310 浏览 8 评论 0原文

我有一个场景,我必须从 CompositionContainer 实例导出,但我只有一个类型可以使用; 我不知道编译时的类型,因此无法以正常的通用方式检索导出的对象。

通常你会这样做:

_container.GetExportedObject<IMyType>();

但就我而言,我有这样的:

Type someType = ... ;
_container.HowDoIGetTheExport(someType);

有什么想法吗?

I have a scenario where I have to get an export from my CompositionContainer instance but I only have a Type to work with; I don't know the type at compile time, hence I can't retrieve the exported object in the normal generic way.

Normally you would do this:

_container.GetExportedObject<IMyType>();

But in my case, I have this:

Type someType = ... ;
_container.HowDoIGetTheExport(someType);

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绝情姑娘 2024-08-01 06:56:18

找到了答案:

var export = _container.GetExports(someType, null, null).FirstOrDefault();

Found the answer:

var export = _container.GetExports(someType, null, null).FirstOrDefault();
耳钉梦 2024-08-01 06:56:18

使用 Type.MakeGeneric 动态创建调用.....

http://geekswithblogs.net/marcel/archive/2007/03/24/109722.aspx

Create the call dynamically using Type.MakeGeneric.....

http://geekswithblogs.net/marcel/archive/2007/03/24/109722.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文