1 つの方法は、構成中にデフォルト値を許可することです。これにより、パーツの作成が可能になり、コンストラクターでインポートされたパーツの値がチェックインされます。指定されたタイプのデフォルトである場合は、例外をスローします。サンプルは次のとおりです。
[Export(typeof(IStartup))]
public class StartUpThatDoesNotResolve : IStartup
{
private SomeDependency _sd;
[ImportingConstructor]
public StartUpThatDoesNotResolve([Import(AllowDefault=true)] SomeDependency sd)
{
if (Object.Equals(sd, default(SomeDependency))) throw new ArgumentException("sd");
_sd = sd;
}
public void Start()
{
Console.WriteLine("{0} started", this.GetType().Name);
}
}
もう 1 つの方法は、Mefxを使用して障害を診断することです。Mefxを呼び出すスクリプトを作成し、特定のエラーの出力を確認できます。CIを適用している場合は、これも追加できます。
最後になりましたが、Mefx のソースをダウンロードして、Mefx がどのように障害を診断するかを調べて調べることができます。次に、同様のことを試すことができます。MEF Preview 9のソースでは、Samples/CompositionDiagnostics の下にあります。私はこれをやったことがないので、このアプローチについて具体的なことを提案することはできません.