什么[PartCreationPolicy(CreationPolicy.Shared)]

Ada*_*Lee 9 c# mef

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

Jul*_*lin 15

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

private void Test()
{
  var foo1 = Container.GetExportedValue<Foo>();
  var foo2 = Container.GetExportedValue<Foo>();
  Console.WriteLine(foo1 == foo2); // => True
}
Run Code Online (Sandbox Code Playgroud)


sfo*_*gle 5

为了增加朱利安的答案,我认为从概念上讲你可以把它想象成一个单身人士.