У меня есть сборка, которая содержит класс. Этот класс имеет два методаC# отражение и методы двусмысленности
public IEnumerable Invoke();
public IEnumerable<T> Invoke<T>();
я динамически загрузить сборку
Assembly as = Assembly.Load("MyAssemblyName, Version= 6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")
Type type = as.GetType("MyClass");
object myObject= Activator.CreateInstance(type);
IEnumerable test= (IEnumerable)myObject.GetType().InvokeMember("Invoke", BindingFlags.InvokeMethod, null, myObject, null);
Я хочу этот метод называется: общественный IEnumerable Invoke();
, когда я запускаю программу, я получил сообщение об ошибке: Неоднозначный матч нашел
Так что нужно сделать, чтобы удалить двусмысленность, так что не-шаблонный метод будет называться?
Заранее спасибо.
@Luaan, который попытается вызвать элемент IEnumerable, называемый «Invoke», который не существует. – phoog
Да, я пропустил этот момент. Почему бы не создать интерфейс, который имеет эти методы 'Invoke', а затем вызвать это без необходимости использовать отражение в первую очередь? – Luaan
@ Luaan Очевидно, это код игрушки, чтобы продемонстрировать проблему. – Casey