Projem için MEF'yi DI olarak kullanmak istiyorum. 1 projem var ve oluşturulacak her sınıf var (bir arabirimi paylaşıyorlar). Şimdi meta veri değerini belirleyerek bunlardan birini oluşturmak istiyorum. MEF GetExportedValue meta verileriyle
public interface IGatewayResponseReader
{
object Read(string msg);
}
[Export(typeof(IGatewayResponseReader))]
[ExportMetadata(G3Reader.META_KEY, "value1")]
public class TestReader1 : IGatewayResponseReader
{
...
}
[Export(typeof(IGatewayResponseReader))]
[ExportMetadata(G3Reader.META_KEY, "value2")]
public class TestReader2 : IGatewayResponseReader
{
...
}
Şimdi MEF yoluyla TestReader1 bir örneğini oluşturmak istiyor ama CompositionContainer yoluyla meta göre filtre uygulamak için nasıl bilmiyorum: İşte tanımlamalar var. Ben, hangi sınıf örneğinin oluşturulacağını seçmek için meta verileri belirtmek istiyorum.
Yardımınız çok takdir edilmektedir.
Teşekkürler.
Teşekkür Phil, yardımına :) takdir: o ithalat
Value
özelliği erişmeden önce boş değil olup olmadığını kontrol etmek iyi bir fikir olduğunu unutmayın. Lanet olsun, bu şekilde denedim ve işe yaramadı çünkü MetadataAttribute hakkında bir şey bilmiyordum: (5 saat boyunca bunu anlamaya çalıştım. – Davita