Создание CommonSnappableTypes.dll

We use cookies. Read the Privacy and Cookie Policy

Создание CommonSnappableTypes.dll

Первой нашей задачей является создание компоновочного блока, содержащего типы, которые должен использовать каждый подключаемый модуль, чтобы обеспечить возможность его подключения к нашему приложению Windows Forms. Проект библиотеки классов CommonSnappableTypes определяет следующие два типа.

namespace CommonSnappableTypes {

 public interface IAppFunctionality {

  void DoIt();

 }

 [AttributeUsage(AttribyteTargets.Class)]

 public sealed class CompanyInfoAttribute: System.Attribute

  private string companyName;

  private string companyUrl;

  public CompanyInfoAttribute(){}

  public string Name {

   get { return companyName; }

   set { companyName = value; }

  }

  public string Url {

   get { return companyUrl; }

   set { companyUrl = value; }

  }

 }

}

Интерфейс IAppFunctionality обеспечивает полиморфные возможности для всех подключаемых модулей, которые может принять наше расширяемое приложение Windows Forms. Наш пример является исключительно иллюстративным, поэтому здесь интерфейс предлагает единственный метод, DoIt(). В реальности это может быть интерфейс (или набор интерфейсов), позволяющий подключаемому объекту сгенерировать программный код сценария, поместить пиктограмму в окно инструментов или интегрироваться в главное меню приложения.

Тип CompanyInfoAttribute является пользовательским атрибутом, который будет применяться к любому типу класса, размещаемому в контейнере. Исходя из определения этого класса, можно утверждать, что [CompanyInfo] позволяет разработчику расширения сообщить информацию о происхождении подключаемого компонента.