我有一個奇怪的MEF問題的部分,我在一個測試項目測試這一點,這一切似乎工作得很好,但由於某種原因,在實際的項目GetExportedValues <MyType>返回任何內容,我可以看到
這不工作是出口代碼
public void RegisterComponents()
{
_registrationBuilder = new RegistrationBuilder();
_registrationBuilder
.ForTypesDerivedFrom(typeof(MyType))
.SetCreationPolicy(CreationPolicy.NonShared)
.Export();
var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(typeof(MyType).Assembly, _registrationBuilder));
var directoryCatalog = new DirectoryCatalog(PathToMyTypeDerived, _registrationBuilder);
catalog.Catalogs.Add(directoryCatalog);
_compositionContainer = new CompositionContainer(catalog);
_compositionContainer.ComposeParts();
var exports = _compositionContainer.GetExportedValues<MyType>();
Console.WriteLine("{0} exports in AppDomain {1}", exports.Count(), AppDomain.CurrentDomain.FriendlyName);
}
出口計數爲0 :(任何想法,爲什麼?
在日誌文件中我有很多這樣
SY的stem.ComponentModel.Composition信息:6:ComposablePartDefinition'SomeOthertype'被忽略,因爲它不包含導出。
雖然我認爲這是可以的,因爲我沒」興趣出口‘someOtherType’
更新:我發現這個link但調試運行在它之後,我並不聰明,但也許我不是適當跟進。
感謝任何指針
乾杯
什麼是CorePlugin?它是否來自MyType? –
它是MyType,我將編輯代碼(我改變了名稱,使問題更加明顯) – roundcrisis
順便說一句,如果我用Roslyn構建,這是第二次拾取,但我不能不斷更改編譯器:D – roundcrisis