私は、このようなシングルトン クラスの側に実装されているジェネリック デリゲートを持っています。
public class BBCacheMethods
{
private static BBCacheMethods instance;
private BBCacheMethods() { }
public static BBCacheMethods Instance
{
get
{
if (instance == null)
{
instance = new BBCacheMethods();
}
return instance;
}
}
public T GetResUstPolitikaBelgeTurlerisForCache<T>() where T:class
{
return null;
}
public delegate T MethodToInvokeDelegate<T>();
public static MethodToInvokeDelegate<T> MethodToInvoke<T>() where T : class
{
MethodInfo method = Instance
.GetType()
.GetMethod("GetResUstPolitikaBelgeTurlerisForCache");
if (null != method)
{
return (MethodToInvokeDelegate<T>)Delegate.CreateDelegate(
typeof(MethodToInvokeDelegate<T>),
Instance,
method);
}
else
throw new FaultException("");
}
デリゲートを呼び出すと、次のエラーが表示されます。
署名またはセキュリティ透過性がデリゲート型のものと互換性がないため、ターゲット メソッドにバインドできません。
デリゲートを呼び出すクラスは、次のように呼び出します。
public static void loadCache<T>() where T : class
{
var aa = BBCacheMethods.MethodToInvoke<T>();
}
なぜこのようなエラーが発生するのかわかりませんでした。助けていただければ幸いです。