IDesignerFilter.PreFilterAttributes(IDictionary) Метод

Определение

При переопределении в производном классе позволяет конструктору добавлять элементы в набор атрибутов, предоставляемых через класс TypeDescriptor.When overridden in a derived class, allows a designer to add items to the set of attributes that it exposes through a 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 класса компонента.The Attribute objects for the class of the component. Ключи в словаре атрибутов являются значениями TypeId атрибутов.The keys in the dictionary of attributes are the TypeId values of the attributes.

Комментарии

Этот метод предоставляет способ добавления элементов в словарь атрибутов, предоставляемых связанным компонентом конструктора, реализующим этот интерфейс, через TypeDescriptor.This method provides a way to add items to the dictionary of attributes that the associated component of the designer implementing this interface exposes through a TypeDescriptor.

Ключи в словаре атрибутов являются идентификаторами типов атрибутов.The keys in the dictionary of attributes are the type IDs of the attributes. Объекты имеют тип Attribute.The objects are of type Attribute. Этот метод вызывается непосредственно перед PostFilterAttributes.This method is called immediately before PostFilterAttributes.

ИДЕНТИФИКАТОРом типа атрибута может быть любой объект.The type ID of an attribute can be any object. По умолчанию Attribute возвращает Type в качестве значения свойства TypeId.By default, Attribute returns its Type as the value of its TypeId property. Можно проверить TypeId атрибута в словаре на предмет эквивалентности с известным TypeId для атрибута, чтобы определить его, или использовать System.Reflection для идентификации самого объекта атрибута.You can check the TypeId of an attribute in the dictionary for equivalence with a known TypeId for an attribute to identify it, or use System.Reflection to identify the attribute object itself.

Если атрибут, имеющий тот же TypeId, что и существующий или наследуемый атрибут, добавляется в компонент, новый атрибут заменяет старый.When an attribute that has the same TypeId as an existing or inherited attribute is added to a component, the new attribute replaces the old attribute. Для многих атрибутов новый атрибут того же типа заменит все предыдущие атрибуты типа.For many attributes, a new attribute of the same type will replace any previous attribute of the type. Однако некоторые типы атрибутов возвращают TypeId, который выборочно различает атрибут.However, some types of attributes return a TypeId that distinguishes the attribute selectively. Например, чтобы предоставить различные типы одновременно активных конструкторов для типа, например IRootDesigner и IDesigner, класс DesignerAttribute возвращает TypeId, который однозначно определяет как атрибут, так и базовый тип конструктора.For example, in order to provide different types of simultaneously active designers for a type, such as an IRootDesigner and an IDesigner, the DesignerAttribute class returns a TypeId that uniquely identifies both the attribute and the base designer type. Конструктор DesignerAttribute позволяет указать базовый тип конструктора в дополнение к конкретному типу, а DesignerAttribute возвращает TypeId, отражающее это.The DesignerAttribute constructor allows you to specify the base designer type of the designer in addition to its specific type, and DesignerAttribute returns a TypeId that reflects this. Поэтому при добавлении нового DesignerAttribute с базовым типом конструктора того же типа, что и базовый тип конструктора существующего DesignerAttribute, старый атрибут заменяется новым атрибутом.Therefore when you add a new DesignerAttribute with a base designer type of the same type as the base designer type of an existing DesignerAttribute, the old attribute is replaced with the new attribute.

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

Можно напрямую отфильтровать словарь, доступный через параметр attributes, или оставить его без изменений.You can directly filter the dictionary that is accessible through the attributes parameter, or you can leave it unchanged. Если вы переопределяете этот метод, вызовите базовую реализацию после выполнения собственной фильтрации.If you are overriding this method, call the base implementation after you perform your own filtering.

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

Дополнительно