よろしくお願いします。次のエクスポートされた部分があります。
[Export (typeof(INewComponent))] // orignally tried just [Export} here and importing NewComponent below
public class NewComponent : INewComponent
{
// does stuff including an import
}
コンソールテストプログラムは、上記をインポートします。
public class Program
{
[Import] // have tried variations on importing "NewComponent NewComponent" etc
public INewComponent NewComponent
{
get;
set;
}
public static void Main(string[] args)
{
var p = new Program();
var catalog = new AssemblyCatalog(typeof(Program).Assembly);
var container = new CompositionContainer(catalog);
container.ComposeParts(p);
}
コンポジションはこれらのCompositionExceptionsで失敗します(有罪を保護するために名前空間を削除しました:)):
1)制約に一致する有効なエクスポートが見つかりませんでした'((exportDefinition.ContractName == "INewComponent")AndAlso(exportDefinition.Metadata.ContainsKey( "ExportTypeIdentity")AndAlso "INewComponent" .Equals(exportDefinition.Metadata.get_Item( "ExportTypeIdentity "))))'、無効なエクスポートが拒否された可能性があります。
次のようにメインプログラムでコンポジションを実行すると、コンポジションは正常に機能します。
public class Program
{
public static void Main(string[] args)
{
INewComponent newComponent = new NewComponent();
var catalog = new AssemblyCatalog(typeof(Program).Assembly);
var container = new CompositionContainer(catalog);
container.ComposeParts(newComponent);
}
}
ありがとうございました