Настройка хуков приложения - C # / ASP.NET - PullRequest
2 голосов
/ 07 декабря 2009

Многие популярные приложения, такие как Wordpress, WHMCS и большинство форумов PHP, позволяют плагинам подключаться к основным событиям приложения (таким как регистрация, вход в систему, создание публикации и т. Д.), Просто указав функцию с определенным именем.

Я понимаю, что эти приложения предварительно не скомпилированы, но возможно ли сделать что-то подобное с C #? Я смотрел на обработчики событий, но кажется, что вы можете сделать это только в том случае, если плагин имеет возможность создавать экземпляр класса, в который мы хотим подключиться (или, по крайней мере, именно так поиск заставил меня поверить)

В идеале, эти ловушки должны быть в событиях / методах класса бизнес-уровня и могут быть подключены к несколькими объектами , поэтому они будут работать в WinForms или ASP.NET MVC.

Ответы [ 5 ]

2 голосов
/ 07 декабря 2009

Учитывая ответ Алекса, это должно быть полезно:

System.AddIn Инструменты и образцы
http://clraddins.codeplex.com/

2 голосов
/ 07 декабря 2009

Если вы разрабатываете свое приложение для расширяемости, это легко. Managed Extensibility Framework разработан именно для такого сценария и делает его очень простым.

Он будет включен как часть базовой платформы в .NET 4, но теперь доступен для загрузки для использования в 3.5.

1 голос
/ 07 декабря 2009

Существует фреймворк AddIn, поставляемый с .NET 3.5. Инфраструктура предоставляет очень мощные механизмы для предоставления интерфейсов хост-приложением и для управления, динамической загрузки-выгрузки надстроек и т. Д.

0 голосов
/ 07 декабря 2009

Подробная информация о нашем senerio будет полезна, но, как правило, вы можете обратиться к поставщику psttern.

Есть 3 компонента: - абстракция части функциональности, (Interface / baseClass) - Метод Factory, который ищет конфигурацию, чтобы определить, какой тип класса создать - [ваш] Пользовательский класс, который расширяет / реализует абстракцию. например, класс поставщика членства, который использует пользовательский источник данных для информации о пользователе.

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

Существует поддержка этого в ASP.NET, начиная с 2.0. Больше информации о провайдере: http://msdn.microsoft.com/en-us/library/ms972319.aspx

0 голосов
/ 07 декабря 2009

Почему основной концепцией, которая приходит мне в голову первым, является инъекция зависимости? Я никогда не играл с плагином в моем приложении. Может ли я как-нибудь помочь с этим ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...