CompositionContainer.ComposeExportedValue 方法到底做什么?

发布于 2024-10-14 16:41:56 字数 151 浏览 1 评论 0原文

CompositionContainer.ComposeExportedValue 方法是否接受一个对象并使该对象的导出方法可用?我有点困惑这个方法的作用。我所知道的是这个方法将对象注册到容器中。它如何向容器注册对象?此方法是否以某种方式使对象的导出方法或具有导出属性的对象可用于其他类?

Does the CompositionContainer.ComposeExportedValue method take an object and make the object's export method available? I am kind of confused what this method does. All I know is that this method regsiters object with the container. How does it register objects with the container? Does this method majically somehow make an object's export methods, or an object that has the export attribute available for other classess?

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

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

发布评论

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

评论(1

双马尾 2024-10-21 16:41:56

据我所知 AttributedModelServices.ComposeExportedValueCompositionContainer 的扩展方法 将给定对象注册为满足契约T的一部分。这意味着该对象确实将用于组成导入 T 的其他对象。

也许更重要的是它不做

一般来说,您应该避免使用这些方法。通常,您只需向类添加必要的属性,然后通过 AssemblyCatalog 将其添加到容器中。

AFAIK the AttributedModelServices.ComposeExportedValue<T> extension method for CompositionContainer registers the given object as a part satisfying contract T. This means that the object will indeed be used to compose other objects which import T.

Perhaps more important is what it doesn't do:

  • It doesn't try to set any properties with Import attributes. You can do that with AttributedModelServices.ComposeParts.
  • It doesn't transfer ownership of the object to the container. If the object is IDisposable, it will not be disposed when the container is disposed.

In general you should avoid these methods. Typically you would just add the necessary attributes to your class and add it to the container via a AssemblyCatalog.

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