powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интерфейсы в dll
23 сообщений из 23, страница 1 из 1
Интерфейсы в dll
    #38993668
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программа, которая написала на C#. Необходимо реализовать к ней плагин. Дана платформа встраивания в виде DLL, а в ней определены интерфейсы. В .Net я новичок. В документации для разработки сказано, что реализовывать плагин следует исключительно на языке, поддерживающем .Net Framework 4.0. И еще сказано, что система подключения плагинов построена на технологии MAF. Кто знаком с нутром этой технологии, скажите пожалуйста, возможно ли написать плагин например на delphi, не поддерживающем .Net Framework? Как доказать руководству, что нужно осваивать шарп для этой задачи?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993676
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevaselВ документации для разработки сказано, что реализовывать плагин следует исключительно на языке, поддерживающем .Net Framework 4.0.
....
возможно ли написать плагин например на delphi, не поддерживающем .Net Frameworkто есть ни для вас ни для руководства официальная документация не авторитет?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993677
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevasel,

сюда
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993695
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,авторитет. я пытался разобраться с нутром, но я ничего не понимаю, вот честно. если вы знаете, подскажите, технические ограничения, которые не позволяют писать на чем-то другом?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993736
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevaselесли вы знаете, подскажите, технические ограничения, которые не позволяют писать на чем-то другом?
1) формат PE файла, используемый в .net
2) вместо машинных команд в PE файле используются инструкции виртуальной машины (MSIL)
для начала достаточно?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993793
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил, это нутро самого Framework по идее. Так зачем тогда такие технологии, если они блокируют межязыковое взаимодействие!?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993809
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevaselТак зачем тогда такие технологии, если они блокируют межязыковое взаимодействие!?
блокирует взаимодействие нежелание или неспособность учиться
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993905
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот нашел тут http://krez0n.org.ua/archives/248 информацию о том, как работать с интерфейсами из dll, написанной на C#. Оказывается нужно пометить сборку как COM-импортируемую. Если исходников конечно же нет этой библиотеки, то как это сделать?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993914
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нанять специалиста.
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993955
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy, а что будет делать специалист? писать на C#?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993966
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да. у него этих проблем не будет:
sevasel но я ничего не понимаю,
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38993996
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevasel,

это что, какое-то тестовое задание? Недавно аналогичный вопрос был. Где его дают?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994015
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petalvik, это мой топик
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994027
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
без Register for COM получается нельзя сделать доступным оболочку COM?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994081
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sevaselбез Register for COM получается нельзя сделать доступным оболочку COM?
COM то здесь при чём, если
sevaselВ документации для разработки сказано, что реализовывать плагин следует исключительно на языке, поддерживающем .Net Framework 4.0

Был бы интерфейс плагина COM - можно было бы писать и на дельфи без net
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994096
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
Идея ТСа - сделать реверс инженеринг предоставленной dll и сделать его COM interoperable, чтобы .NET не нужно было использовать. Ну не ищет человек простых путей ;)
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994225
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пусть враппер напишет
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994247
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде ж дельфи уже может компилить в msil, не?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994271
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronИзопропил,
Идея ТСа - сделать реверс инженеринг предоставленной dll и сделать его COM interoperable, чтобы .NET не нужно было использовать. Ну не ищет человек простых путей ;)чо? автору дали прогу, в которую втыкаются maf-плагины и задание написать плагин.
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38994311
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallarisвроде ж дельфи уже может компилить в msil, не?
Кстати да.
В Вики пишут, что раньше могла, но новые версии уже не могут. Однако, учитывая, что делфисты любят сидеть на старом г-не, это вряд ли проблема. Ну и некий Prism предлагается.
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38998757
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отбросил идею с delphi. разбираюсь с азами C# и с тестовым примером.
приходится начинать знакомство как мне кажется не с самого тривиального.
интерфейсы и плагины. ну не ругайте!

в документации сказано: интерфейс, который предоставляет дополнение (плагин) для взаимодействия, должен наследоваться от базового интерфейса IBasePlugin<THost> и ,при необходимости, от одного или нескольких доступных интерфейсов платформы встраивания, помеченных атрибутом Plugin, а также быть пустым

в тестовом примере это выглядит так:
Код: c#
1.
2.
3.
    public interface IPayPlugin : IBasePlugin<IPayPluginHost>,  IPluginPayService
    {
    }


А описание IBasePlugin внутри библиотеки платформы встраивания
Код: c#
1.
2.
3.
4.
    public interface IBasePlugin<in TIHost>
    {
        TIHost Host { set; }
    }


IPayPlugin реализован:
Код: c#
1.
2.
3.
4.
5.
public sealed class PayPlugin : IPayPlugin
{
..
public IPayPluginHost Host { set; private get; }
}



поясните, пожалуйста, кому не сложно, этот момент с обобщенным интерфейсом(?)

p.s. тестовый пример написан на старой версии библиотеки платформы встраивания. в новой при просмотре в утилите ILDASM есть описание интерфейса
IBasePlugin с одним методом Initialize(!TIHost host)
что за отрицание в параметре метода?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #38998762
sevasel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как понимаю я. так сделано чтобы реальный интерфейс хоста был доступен через свойство Host?
...
Рейтинг: 0 / 0
Интерфейсы в dll
    #39248849
subscribe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sevasel, TIHost объявлен в библиотеке как дженерик. Пример реализации интерфейса плагина:

public interface ITestPluginHost : IDBAccess
{
}

public interface ITestPlugin : IBasePlugin<ITestPluginHost>
{
}

public class TestPlugin : ITestPlugin
{
public void Initialize(ITestPluginHost host)
{

var cs = host.GetConnectionString();
MessageBox.Show("Method Initialize of TestPlugin called. TestPlugin - OK\n" +
"Calling GetConnectionString of host returns: " + cs);
}
}
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интерфейсы в dll
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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