静的メソッドを含む静的クラスHelperMethods
があります。が含まれているアセンブリでメソッドを動的に呼び出す必要がありますHelperMethods
が、このアセンブリが使用できる場合があります。したがって、必要なメソッドを含むそのアセンブリを参照することはできません。また、このメソッドのコードをコピーすることはできません。これは、必要なメソッドからSpecificServiceHost
派生したカスタム オブジェクトを生成するServiceHost
ためですが、コードの他の部分は、それがオブジェクトであることを認識する必要があるだけServiceHost
です。が利用できない場合SpecificServiceHost
、メソッドは単純に通常のServiceHost
オブジェクトを作成します。
private ServiceHost TryFindSpecialServiceHost()
{
try
{
var dynamicType = Type.GetType("Common, SuperApplication.Common.HelperMethods", true);
// Should find "public static SpecificServiceHost CreateSpecificServiceHost(Type serviceType, params Uri[] baseAddresses)" method
var createServiceHost = dynamicType.GetMethod("CreateSpecificServiceHost",
BindingFlags.Public | BindingFlags.Static,
null,
new[] { typeof(Type), typeof(Uri[]) },
null);
var dynamicInstance = createServiceHost.Invoke(null, new object[] { typeof(IMyWcfServiceContract), null });
return (ServiceHost) dynamicInstance;
}
catch
{
return new ServiceHost(typeof(IMyWcfServiceContract));
}
}
これで、フレームワークでの の実装が原因であってはならないcreateServiceHost.Invoke
例外がスローされます。引数は参照を許可すると思いました。しかし、そうではありません!私は何をすべきか?ありがとう!baseAddresses
null
ServiceHost
params
null