2015-07-30 4 views
1

У меня есть требование, когда мне нужно реализовать интерфейс в моем проекте, который присутствует в DLL третьей части. Я загружаю эту DLL, используя отражение. Является ли это возможным?Реализация интерфейса с использованием Reflection C#

class MyClass : I3rdPartyInterface 
{ 
    //implementing interface 
} 

Здесь I3rdPartyInterface это интерфейс присутствует в моей 3-й партии библиотеки DLL. Эта DLL могла или не могла присутствовать на компьютере клиента, установлен мой программный продукт. Если он присутствует, я должен реализовать методы интерфейса.

+2

Почему вы загружаете этот DLL с помощью отражения? Почему вы не могли ссылаться на него? –

+0

@ xtnd8 Да, точно я не могу сослаться на эту Dll в моем проекте – Anamay

+0

в чем проблема, с которой вы сталкиваетесь? Является ли эта неуправляемая DLL? –

ответ

3

Ваш лучший вариант - написать новый проект, который ссылается на эту DLL и реализует интерфейс, и загрузить его во время выполнения.

Новая dll «переводит» между внешними типами dll и типами вашего приложения - таким образом, нет прямой зависимости между вашим приложением и внешней dll.

Вы можете создавать и компилировать код во время выполнения, но для этого сценария просто проще создать обертку/переводчик DLL

+0

Точно такая же мысль я получил. Позвольте мне посмотреть, насколько это возможно в моем senario.Thanks много для вас предложение.Обертка может решить эту проблему. – Anamay

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