IDesignerFilter.PreFilterAttributes(IDictionary) Метод

Определение

При переопределении в производном классе позволяет конструктору добавлять элементы в набор атрибутов, предоставляемых через класс TypeDescriptor.

public:
 void PreFilterAttributes(System::Collections::IDictionary ^ attributes);
public void PreFilterAttributes (System.Collections.IDictionary attributes);
abstract member PreFilterAttributes : System.Collections.IDictionary -> unit
Public Sub PreFilterAttributes (attributes As IDictionary)

Параметры

attributes
IDictionary

Объекты Attribute класса компонента. Ключи в словаре атрибутов являются значениями TypeId атрибутов.

Комментарии

Этот метод предоставляет способ добавления элементов в словарь атрибутов, предоставляемых соответствующим компонентом конструктора, реализующим этот интерфейс TypeDescriptor.

Ключи в словаре атрибутов — это идентификаторы типов атрибутов. Объекты имеют тип Attribute. Этот метод вызывается непосредственно перед PostFilterAttributes.

Идентификатор типа атрибута может быть любым объектом. По умолчанию Attribute возвращает его Type в качестве значения свойства TypeId . Атрибут в словаре можно проверить TypeId на эквивалентность с известным TypeId атрибутом для его идентификации или использовать System.Reflection для идентификации самого объекта атрибута.

Если в компонент добавляется атрибут, имеющий тот же TypeId , что и существующий или унаследованный атрибут, новый атрибут заменяет старый атрибут. Для многих атрибутов новый атрибут одного типа заменит любой предыдущий атрибут этого типа. Однако некоторые типы атрибутов возвращают атрибут TypeId , который избирательно отличает атрибут. Например, чтобы предоставить разные типы одновременно активных конструкторов для типа, например IRootDesigner типа и an IDesigner, DesignerAttribute класс возвращает TypeId однозначно идентифицирующий атрибут и базовый тип конструктора. Конструктор DesignerAttribute позволяет указать базовый тип конструктора конструктора в дополнение к его конкретному типу и DesignerAttribute возвращать соответствующий TypeId тип. Поэтому при добавлении нового DesignerAttribute с базовым типом конструктора того же типа, что и базовый тип конструктора существующего DesignerAttribute, старый атрибут заменяется новым атрибутом.

Примечания для тех, кто реализует этот метод

Вы можете напрямую отфильтровать словарь, доступный через attributes параметр, или оставить его без изменений. При переопределении этого метода вызовите базовую реализацию после выполнения собственной фильтрации.

Применяется к

См. также раздел