Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / интерфейс / 19 сообщений из 19, страница 1 из 1
06.07.2015, 16:42
    #39000721
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
Дико извиняюсь. Продолжаю мучить тему плагинов. В отрыве от темы плагинов..
Необходимо как-то достучаться до реализации интерфейса в .net dll.
Наружу вижу только описание самого интерфейса.
Интерфейс по идее должен иметь свою реализацию внутри dll, т.к.имеет атрибут HostSide.
...
Рейтинг: 0 / 0
06.07.2015, 16:46
    #39000726
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
sevasel,
И в чем проблема?
...
Рейтинг: 0 / 0
06.07.2015, 16:49
    #39000728
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
не знаю как получить доступ к объекту, реализующему интерфейс.. куда смотреть? что читать?
...
Рейтинг: 0 / 0
06.07.2015, 16:50
    #39000732
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
со стороны плагина все понятно, я сам реализую все необходимые интерфейсы, точнее классы реализуют. но как запросить посредством интерфейсов стороны хоста ЕГО функциональность?
...
Рейтинг: 0 / 0
06.07.2015, 16:58
    #39000738
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
sevasel,
Посредством доступа к свойствам и методам. Так и не понял что именно хотите...
...
Рейтинг: 0 / 0
06.07.2015, 17:03
    #39000741
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
sevaselсо стороны плагина все понятно, я сам реализую все необходимые интерфейсы, точнее классы реализуют. но как запросить посредством интерфейсов стороны хоста ЕГО функциональность?хост должен передать плагину ссылку на себя через какое-нибудь свойство или метод интерфейса плагина.
...
Рейтинг: 0 / 0
06.07.2015, 17:06
    #39000744
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
это

Код: c#
1.
2.
3.
4.
    public interface IBasePlugin<in TIHost>
    {
        TIHost Host { set; }
    }


или это

Код: c#
1.
2.
public IPayPluginHost Host { set; private get; }
}
...
Рейтинг: 0 / 0
06.07.2015, 17:07
    #39000745
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
Вот есть dll, в ней выставлен наружу интерфейс IOperDayInfo например с методами GetOperator(), GetOperDayNum() и т.д. Эта dll подключена в Resources. Как мне создать объект, класс которого реализует интерфейс IOperDayInfo? Если я не вижу какой класс его реализует, но знаю наверняка что реализация внутри dll.
...
Рейтинг: 0 / 0
06.07.2015, 17:09
    #39000747
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
Antonariy, да есть такое, передает при инициализации плагина. Но ведь это интерфейсная опять же ссылка., а не некоторый объект, у которого я могу этот интерфейс запросить.
...
Рейтинг: 0 / 0
06.07.2015, 17:10
    #39000750
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
sevasel, иять... тогда рефлекшеном перебираешь все типы в сборке и ищешь реализующие нужный интерфейс... далее создаёшь инстанс через активатор и кастишь к этому интерфейсу...
...
Рейтинг: 0 / 0
06.07.2015, 17:16
    #39000753
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
sevaselВот есть dll, в ней выставлен наружу интерфейс IOperDayInfo например с методами GetOperator(), GetOperDayNum() и т.д. Эта dll подключена в Resources. Как мне создать объект, класс которого реализует интерфейс IOperDayInfo? Если я не вижу какой класс его реализует, но знаю наверняка что реализация внутри dll.таки никак, нужно любым способом узнать имя класса. или рефлексией перебрать все классы и насоздавать экземпляров тех, кто поддерживает нужный интерфейс.

а что за странная постановка вопроса? как правило плагины прописываются в реестре в разделе настроек приложения-хоста, откуда хост и узнает их названия. или они могут прописываться в файле настроек.
...
Рейтинг: 0 / 0
06.07.2015, 17:17
    #39000757
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
buser, спасибо за подсказку! попробую разобраться
...
Рейтинг: 0 / 0
06.07.2015, 17:19
    #39000762
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
sevaselAntonariy, да есть такое, передает при инициализации плагина. Но ведь это интерфейсная опять же ссылка., а не некоторый объект, у которого я могу этот интерфейс запросить.какой "этот"? у них названия есть.

хост создает экземпляр плагина и через свойство передает себя самого, "некоторый объект" по твоей терминологии, со всеми своими интерфейсами. какого лешего еще тебе надо?
...
Рейтинг: 0 / 0
06.07.2015, 17:26
    #39000774
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
Antonariy, я про то, что свойство Host это интерфейсная ссылка на объект, который должен реализовывать этот (IPayPluginHost) интерфейс, но не сам объект. Я ни с чем не спорю, просто пытаюсь понять.
...
Рейтинг: 0 / 0
06.07.2015, 17:44
    #39000797
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
sevaselэто интерфейсная ссылка на объект ... но не сам объект.вообще-то это одно и тоже.
...
Рейтинг: 0 / 0
06.07.2015, 17:46
    #39000800
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
нет никакой разницы между "экземпляром класса", "объектом" или "ссылкой на объект", будь она хоть трижды интерфейсной.
...
Рейтинг: 0 / 0
06.07.2015, 17:50
    #39000807
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
Antonariy, большое спасибо
...
Рейтинг: 0 / 0
06.07.2015, 17:51
    #39000808
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
может так понятней будет?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Public Interface IBasePlugin(Of  In TIHost)
	WriteOnly Property Host() As TIHost
End Interface

Public Interface IPayPlugin
	Inherits IBasePlugin(Of IPayPluginHost)
	Inherits IPluginPayService
End Interface

Public NotInheritable Class PayPlugin
	Implements IPayPlugin

	Private m_Host As IPayPluginHost

	Public Property Host() As IPayPluginHost Implements IBasePlugin(Of IPayPluginHost).Host
		Private Get
			Return m_Host
		End Get
		Set
			m_Host = Value
		End Set
	End Property
End Class

я заметил, что семантика сидиеза не облегчает мозгу усвоение принципов ООП.
...
Рейтинг: 0 / 0
06.07.2015, 18:07
    #39000827
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
интерфейс
Antonariyя заметил, что семантика сидиеза не облегчает мозгу усвоение принципов ООП.
барсик - это вообще вынос мозга
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / интерфейс / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]