Aşağıdakileri içeren bir sınıf A:Bir MEF İthalat Mı?
public class A {
[Import(typeof(IMyService)]
public IMyService MyService { get; set; }
public A() {
CompositionInitializer.SatisfyImports(this);
}
public void DoWork() {
//Blah
MyService.DoIt();
//Blah
}
}
Ve bunu sınamak için bir Test (ayrı ayrı Dll - açık olarak)
[TestMethod]
public void TestDoWork() {
//Blah
DoWork();
//Assert assert
}
Bu, 'MyService' çağırma girişiminde başarısız olduğunda başarısız olur. Daha sonra denedim:
'MyService' ile bildirildi:
[Export(typeof(IMyService))]
public IMyService MyService { get; set; }
Ama yine de neşe yok, bir şeyi özlüyorum - bu mümkün mü?
SL3, MEF Önizleme 9 ve MOQ kullanıyorum.
Herhangi bir yardım beğeni topladı!
Şerefe
Chris
Tamam, ancak neden kurucu ithalatçıyı kullanmam gerekiyor, gerçek uygulamada mülk gayet iyi çalışıyor, muhtemelen bu tür ithal mallarla dalga geçebilecek bir yol var mı? –
@Chris: MEF, mülk enjeksiyonunu teşvik etse de, inşaat enjeksiyonunu tercih ederim, çünkü derleyici, eksik bağımlılıkları olan nesneler oluşturmanızı engeller. Ayrıca bağımlılık alanlarını okuyup hazırlamanıza izin verir, böylece bir bağımlılık değiştirilirse ne olacağını düşünmek zorunda kalmazsınız. –
Bu yöntemi tercih ettim, şahsen ben mülk enjeksiyonu ile alay yapıp yapamayacağınızı bilmek isterim, ancak bu, sahip olduğum sorunu düzeltmeye yardımcı olur. Şerefe. –