2014-08-29 3 views
0

Мне нужно использовать некоторые методы, которые во внешней dll, я уже сделал что-то подобное, но на этот раз внешняя dll - это интерфейс.Как использовать интерфейс внешней dll в C#

я так:

Assembly Assembly = Assembly.LoadFrom("fullpathofdll"); 
Type Type = Assembly.GetType("mytype"); 
dynamic Instance = Activator.CreateInstance(Type); 

Но я получил эту ошибку: Не удается создать экземпляр интерфейса

Я понимаю, что это невозможно instaciate интерфейс, но я не знаю, как сделайте это, чтобы работать.

Кому-то может помочь?

+0

Создать экземпляр конкретного класса, который реализует этот интерфейс вместо этого? –

+1

Inteface - это всего лишь кодовый контракт. Вам нужно создать экземпляр класса, который реализует интерфейс. И вы, конечно, можете найти много классов в dll, которые реализуют этот интерфейс. Все эти классы могут иметь разные реализации, и вы получаете разные результаты одного и того же метода. – Reniuz

+0

ЕСЛИ у вас нет конкретного класса, тогда у вас нет реализации, не поддерживает ли DLL какие-либо типы, реализующие интерфейс? Если нет, то у вас просто есть контракт и нет реализации, поэтому вы сами напишите. –

ответ

0

Интерфейс должен быть «контрактом» для вас, чтобы реализовать, а не создавать экземпляры. Ваша собственная реализация интерфейса может быть создана путем отражения так, как вы делаете выше.

+0

Извините Кени, но я не понимаю. Не могли бы вы дать мне пример того, как это сделать? –

+0

Очевидное: http://msdn.microsoft.com/en-us/library/87d83y5b(v=vs.100).aspx – keni

Смежные вопросы