Код: Выделить всё
public delegate void WriteLogMessage(string msg);
public void SetLogTarget(WriteLogMessage target)
{
this.target = target;
}
< /code>
То, что я пробовал до сих пор, - это объявить делегат с той же подписью. < /p>
public delegate void LogTarget(string message);
< /code>
код, где я делаю вызов отражения: < /p>
var methodInfo = typeof(log4net.ILog).GetMethod("Debug", BindingFlags.Public | BindingFlags.Instance, new Type[] { typeof(string)});
var delegateType = typeof(LogTarget);
var del = Delegate.CreateDelegate(delegateType, methodInfo); // throws
var typeClass = assembly.GetType("the.class.with.that.method");
MethodInfo method = typeClass.GetMethod("SetLogTarget");
method.Invoke(instance, new object[] { del });
Подробнее здесь: https://stackoverflow.com/questions/797 ... -parameter
Мобильная версия