Re[15]: Родитель в Плагинах
От: godwizard Россия  
Дата: 20.12.02 11:33
Оценка:
Здравствуйте, DarkGray, Вы писали:

DG>Здравствуйте, godwizard, Вы писали:


G>>Сделал все как ты написал, все равно где идет проверка

G>>
G>>if(typeof(IPluginModule).IsAssignableFrom(t) && !t.IsAbstract)
G>>

G>>и в дебаге вижу что t = Proman.IPluginModule, почему то игнорируется

DG>Интерфейс как раз и должен игнорироваться, должны находится только классы, которые реализовывают этот интерфейс.


DG>Почему у тебя не находятся классы? — Имхо, потому что ты ищешь их не в той сборке.


Дык я просто папку с длл-ками сканирую и подключаю в цикле. При чем тут сборка?
Best regards
Re[16]: Родитель в Плагинах
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 20.12.02 11:50
Оценка:
G>Дык я просто папку с длл-ками сканирую и подключаю в цикле. При чем тут сборка?

папка-то правильная?
... << RSDN@Home 1.0 beta 3 >>
Re[17]: Родитель в Плагинах
От: godwizard Россия  
Дата: 20.12.02 12:01
Оценка:
Здравствуйте, DarkGray, Вы писали:

G>>Дык я просто папку с длл-ками сканирую и подключаю в цикле. При чем тут сборка?


DG>папка-то правильная?


DG>


да. и длл-ку находит, т.е. я все шаги в дебаге просматриваю. и когда доходит до создания объекта, тут то все накрывается. Ругается, что конструктор на IPluginModule не найден В интерфесе же не надо никаких конструкторов прописывать.
Best regards
Re[18]: Родитель в Плагинах
От: MaxMP Россия  
Дата: 20.12.02 13:29
Оценка:
Здравствуйте, godwizard, Вы писали:

G>Здравствуйте, DarkGray, Вы писали:


G>>>Дык я просто папку с длл-ками сканирую и подключаю в цикле. При чем тут сборка?


DG>>папка-то правильная?


DG>>


G>да. и длл-ку находит, т.е. я все шаги в дебаге просматриваю. и когда доходит до создания объекта, тут то все накрывается. Ругается, что конструктор на IPluginModule не найден В интерфесе же не надо никаких конструкторов прописывать.


А зачем ты интерфес пытаешься создать?
Re[19]: Родитель в Плагинах
От: godwizard Россия  
Дата: 20.12.02 13:35
Оценка:
Здравствуйте, MaxMP, Вы писали:

MMP>Здравствуйте, godwizard, Вы писали:


G>>Здравствуйте, DarkGray, Вы писали:


G>>>>Дык я просто папку с длл-ками сканирую и подключаю в цикле. При чем тут сборка?


DG>>>папка-то правильная?


DG>>>


G>>да. и длл-ку находит, т.е. я все шаги в дебаге просматриваю. и когда доходит до создания объекта, тут то все накрывается. Ругается, что конструктор на IPluginModule не найден В интерфесе же не надо никаких конструкторов прописывать.


MMP>А зачем ты интерфес пытаешься создать?


Есть другое предложение?
... << RSDN@Home 1.0 beta 4 >>
Best regards
Re[20]: Родитель в Плагинах
От: kreek  
Дата: 20.12.02 13:39
Оценка:
Здравствуйте, godwizard, Вы писали:

MMP>>А зачем ты интерфес пытаешься создать?


G>Есть другое предложение?


Экземпляр интерфейса не создается, через него можно подергать объект за заранее известные методы, а создаются экземпляры классов, которые реализуют этот интерфейс
... << RSDN@Home 1.0 beta 3 >>
Re[21]: Родитель в Плагинах
От: godwizard Россия  
Дата: 20.12.02 13:50
Оценка:
Здравствуйте, kreek, Вы писали:

K>Здравствуйте, godwizard, Вы писали:


MMP>>>А зачем ты интерфес пытаешься создать?


G>>Есть другое предложение?


K>Экземпляр интерфейса не создается, через него можно подергать объект за заранее известные методы, а создаются экземпляры классов, которые реализуют этот интерфейс


Может я чего то недопонимаю? Я создал интерфейс, создал класс, имплементирующий данный интерфейс, скомпилировл длл, далее в программе загружаю длл и хочу создать объект этого класса: MyInterface myObject = (MyInterface)asm.CreateInstance(t.FullName);
Или чего то не так?
... << RSDN@Home 1.0 beta 4 >>
Best regards
Re[22]: Родитель в Плагинах
От: kreek  
Дата: 20.12.02 13:57
Оценка:
Здравствуйте, godwizard, Вы писали:

G>Может я чего то недопонимаю? Я создал интерфейс, создал класс, имплементирующий данный интерфейс, скомпилировл длл, далее в программе загружаю длл и хочу создать объект этого класса: MyInterface myObject = (MyInterface)asm.CreateInstance(t.FullName);

G>Или чего то не так?

Я не про конкретную задачу, с которой у тебя проблема. А что вообще возвращает asm.CreateInstance(t.FullName)
... << RSDN@Home 1.0 beta 3 >>
Re[23]: Родитель в Плагинах
От: godwizard Россия  
Дата: 20.12.02 14:11
Оценка:
Здравствуйте, kreek, Вы писали:

K>Здравствуйте, godwizard, Вы писали:


G>>Может я чего то недопонимаю? Я создал интерфейс, создал класс, имплементирующий данный интерфейс, скомпилировл длл, далее в программе загружаю длл и хочу создать объект этого класса: MyInterface myObject = (MyInterface)asm.CreateInstance(t.FullName);

G>>Или чего то не так?

K>Я не про конкретную задачу, с которой у тебя проблема. А что вообще возвращает asm.CreateInstance(t.FullName)


Попробовал даже так написать
Object pm = asm.CreateInstance(t.FullName);


выдала вот такой Exception:
[c#]
An unhandled exception of type 'System.MissingMethodException' occurred in mscorlib.dll

Additional information: Constructor on type Proman.IPluginModule not found.
[c#]
... << RSDN@Home 1.0 beta 4 >>
Best regards
Re[24]: Родитель в Плагинах
От: kreek  
Дата: 20.12.02 14:25
Оценка:
Здравствуйте, godwizard, Вы писали:

G>Попробовал даже так написать
Object pm = asm.CreateInstance(t.FullName);


G>выдала вот такой Exception:

G>[c#]
G>An unhandled exception of type 'System.MissingMethodException' occurred in mscorlib.dll

G>Additional information: Constructor on type Proman.IPluginModule not found.

G>[c#]

У тебя скорее всего t.FullName == Proman.IPluginModule, а надо указать класс, который имплементирует этот интерфейс.
... << RSDN@Home 1.0 beta 3 >>
Re[25]: Родитель в Плагинах
От: godwizard Россия  
Дата: 20.12.02 14:40
Оценка:
Здравствуйте, kreek, Вы писали:

K>Здравствуйте, godwizard, Вы писали:


G>>Попробовал даже так написать
Object pm = asm.CreateInstance(t.FullName);


G>>выдала вот такой Exception:

G>>[c#]
G>>An unhandled exception of type 'System.MissingMethodException' occurred in mscorlib.dll

G>>Additional information: Constructor on type Proman.IPluginModule not found.

G>>[c#]

K>У тебя скорее всего t.FullName == Proman.IPluginModule, а надо указать класс, который имплементирует этот интерфейс.


Извини, я просто не знаю как это писать, если подскажешь, буду благодарен.
... << RSDN@Home 1.0 beta 4 >>
Best regards
Re[26]: Родитель в Плагинах
От: kreek  
Дата: 20.12.02 14:45
Оценка:
Здравствуйте, godwizard, Вы писали:

G>Извини, я просто не знаю как это писать, если подскажешь, буду благодарен.


Кидай сырцы.
... << RSDN@Home 1.0 beta 3 >>
Re[27]: Родитель в Плагинах
От: godwizard Россия  
Дата: 20.12.02 14:51
Оценка:
Здравствуйте, kreek, Вы писали:

K>Здравствуйте, godwizard, Вы писали:


G>>Извини, я просто не знаю как это писать, если подскажешь, буду благодарен.


K>Кидай сырцы.


я тебе на kreek@inbox.ru кинул
... << RSDN@Home 1.0 beta 4 >>
Best regards
Re[26]: Родитель в Плагинах
От: MaxMP Россия  
Дата: 20.12.02 16:16
Оценка:
K>>У тебя скорее всего t.FullName == Proman.IPluginModule, а надо указать класс, который имплементирует этот интерфейс.

G>Извини, я просто не знаю как это писать, если подскажешь, буду благодарен.


Откуда-то ты это t же берешь? И это t у тебя есть тип интерфейса, а должен быть тип класса, рефлизующего интерфейс!
Re[28]: Родитель в Плагинах
От: kreek  
Дата: 20.12.02 17:13
Оценка:
Так ведь у тебя в сборке ProExplorer.dll объевлен интерфейс IPluginModule и класс имплементирующий его fProExplorer, а клиент имеет свой интерфейс IPluginModule, т.е. получается, что у тебя 2 интерфейса IPluginModule, но fProExplorer реализует тот интерфейс, который объевлен в сборке плагина, поэтому и невозможно сделать приведение типа на клиенте.
Я не знаю откуда ты брал пример, но делать надо не так, т.е. общий интерфейс выносить в отдельную сборку и цеплять ее в сборку плагина и к клиенту, в сборке плагина реализовывать в классах, а на клиенте приводить к этому типу, тогда не будет проблем Invalid cast exception.
Удачи.
... << RSDN@Home 1.0 beta 3 >>
Re[9]: Родитель в Плагинах
От: Dr_Fox  
Дата: 12.04.04 07:05
Оценка:
Здравствуйте, godwizard, Вы писали:


G>>>Вот еще тогда такой вопрос. Я плагины хочу перебирать добавлять в меню. У меня MDI приложение и плагины — это дочерние окна. Я в интерфейсе указываю метод выбора пункта меню и в плагине я должен указать MdiParent. Как мне родителя передать? Exe-шник основной референсить?


G>Я тут проблемку эту решил...


Извините за вопрос на вопрос, но все-таки, как вы решили эту проблемку? Заранее спасибо за помощь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.