Я использую сторонний .net dll, которому я звоню. Я упрощаю свой код, но это примерно так.
// The assembly has already been loaded into 'ass'
Type params = ass.GetType("RemoteCalls.ParametersDelegate");
Delegate UseDel = Delegate.CreateDelegate(params, this, "MyGetParams");
Затем я могу передать этот делегат (UseDel) в отраженный объект, и он при необходимости вызовет MyGetParams.
Проблема, с которой я сталкиваюсь, состоит в том, что сигнатура метода состоит из типа внутри сторонней библиотеки dll.
Подпись ParadeDelegate ...
Parameters GetPars();
Итак, мой метод не может вернуть правильный тип (параметры). Я пробовал следующее ..
private static class OtherDelegates<T>
{
public static T MyGetParams()
{
//... code to build up the 'Parameters' class, and return it.
}
}
Тогда звоню ..
Delegate UseDel = Delegate.CreateDelegate(params, this, "OtherDelegates<xxx>.MyGetParams");
Но я не могу понять, что добавить в «ххх».
Я думаю, что я мог бы сделать это, используя CodeDomProvider , но задавался вопросом, есть ли более простой способ?
Кроме того, из-за проблем с лицензированием невозможно добавить DLL в качестве справки.
Спасибо
Рич.