와 내가 MEF에서 초보자 해요 그래서 나는 질문이 :) 난 다음 한 :MEF 게으른 ImportMany는 Creationpolicy.NonShared
[PartCreationPolicy(CreationPolicy.Shared)]
[Export(typeof(SharedExport))]
public class SharedExport : INPCBase
{
[ImportMany(typeof(INonShared),RequiredCreationPolicy = CreationPolicy.NonShared)]
private IEnumerable<Lazy<INonShared,Dictionary<string,object>>> fac;
...
public void Open()
{
foreach (var lazy in fac)
{
this.Muster.Add(lazy.Value);
}
}
가져온 클래스는 모든 비공유로 표시.
[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(typeof(INonShared))]
[ExportMetadata("Muster","030")]
public sealed class NonShared1 : INPCBase, INonShared
{
public NonShared1()
{
Debug.WriteLine("ctor NonShared1" + this.GetHashCode().ToString());
}
#region Implementation of INonShared
public string Displayname
{
get { return "Muster 030 "+ this.GetHashCode().ToString();
}
}
#endregion
}
지금 내 질문 : Open()이 실행될 때 항상 새로운 NonShared1 인스턴스를 생성해서는 안됩니까? 나는 항상 똑같아.
ExportFactory 힌트의 경우 thx입니다. 나는 그것을 시도 줄 것이다 :) – blindmeis