10

[PartCreationPolicy(CreationPolicy.Shared)] 是什么意思?

4

2 回答 2

19

这意味着,当请求用 装饰的类的实例时[PartCreationPolicy(CreationPolicy.Shared)]CompositionContainer将始终返回该类的相同实例而不创建新实例。

[Export]
[PartCreationPolicy(CreationPolicy.Shared)]
class Foo
{

}

上面的类将给出以下结果:

private void Test()
{
  var foo1 = Container.GetExportedValue<Foo>();
  var foo2 = Container.GetExportedValue<Foo>();
  Console.WriteLine(foo1 == foo2); // => True
}
于 2012-09-24T11:11:22.850 回答
6

为了补充朱利安的回答,我认为从概念上讲,您可以将其视为Singleton

于 2012-09-28T19:35:35.100 回答