ProvidePropertyAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет имя свойства, которое средство реализации IExtenderProvider предоставляет другим компонентам. Этот класс не наследуется.
public ref class ProvidePropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true)]
public sealed class ProvidePropertyAttribute : Attribute
public sealed class ProvidePropertyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true)>]
type ProvidePropertyAttribute = class
inherit Attribute
type ProvidePropertyAttribute = class
inherit Attribute
Public NotInheritable Class ProvidePropertyAttribute
Inherits Attribute
- Наследование
- Атрибуты
Примеры
В следующем примере помечается MyClass
GetMyProperty
классом ProvidePropertyAttribute , который указывает компилятору создать свойство с именем MyProperty
из методов и SetMyProperty
.
[ProvideProperty("MyProperty",Control::typeid)]
public ref class MyClass: public IExtenderProvider
{
protected:
CultureInfo^ ciMine;
public:
// Provides the Get portion of MyProperty.
CultureInfo^ GetMyProperty( Control^ myControl )
{
// Insert code here.
return ciMine;
}
// Provides the Set portion of MyProperty.
void SetMyProperty( Control^ myControl, String^ value )
{
// Insert code here.
}
/* When you inherit from IExtenderProvider, you must implement the
* CanExtend method. */
virtual bool CanExtend( Object^ target )
{
return dynamic_cast<Control^>(target) != nullptr;
}
// Insert additional code here.
};
[ProvideProperty("MyProperty", typeof(Control))]
public class MyClass : IExtenderProvider {
protected CultureInfo ciMine = null;
// Provides the Get portion of MyProperty.
public CultureInfo GetMyProperty(Control myControl) {
// Insert code here.
return ciMine;
}
// Provides the Set portion of MyProperty.
public void SetMyProperty(Control myControl, string value) {
// Insert code here.
}
/* When you inherit from IExtenderProvider, you must implement the
* CanExtend method. */
public bool CanExtend(Object target) {
return(target is Control);
}
// Insert additional code here.
}
<ProvideProperty("MyProperty", GetType(Control))> _
Public Class SampleClass
Implements IExtenderProvider
Protected ciMine As CultureInfo = Nothing
' Provides the Get portion of MyProperty.
Public Function GetMyProperty(myControl As Control) As CultureInfo
' Insert code here.
Return ciMine
End Function 'GetMyProperty
' Provides the Set portion of MyProperty.
Public Sub SetMyProperty(myControl As Control, value As String)
' Insert code here.
End Sub
' When you inherit from IExtenderProvider, you must implement the
' CanExtend method.
Public Function CanExtend(target As [Object]) As Boolean Implements IExtenderProvider.CanExtend
Return TypeOf target Is Control
End Function 'CanExtend
' Insert additional code here.
End Class
Комментарии
Помечая класс этим атрибутом, вы указываете генератору кода создать свойство расширителя с указанным именем. Помеченный класс должен реализовывать IExtenderProvider. В результате новое свойство может использоваться другими компонентами в контейнере.
В помеченных классах необходимо реализовать Get
<методы name> и Set
<name> . Например, если вы помечаете класс с помощью [ProvideProperty("PropertyName")], необходимо реализовать GetPropertyName
методы и SetPropertyName
. Чтобы указать, что новое свойство будет свойством расширителя, необходимо реализовать из IExtenderProvider, необходимо также реализовать CanExtend
метод .
Дополнительные сведения см. в разделе Атрибуты.
Конструкторы
ProvidePropertyAttribute(String, String) |
Инициализирует новый экземпляр класса ProvidePropertyAttribute, используя данное имя свойства и тип его получателя. |
ProvidePropertyAttribute(String, Type) |
Инициализирует новый экземпляр класса ProvidePropertyAttribute, используя имя свойства и его тип Type. |
Свойства
PropertyName |
Возвращает имя свойства, предоставляемого данным классом. |
ReceiverTypeName |
Возвращает имя типа данных, на который может распространяться это свойство. |
TypeId |
Возвращает уникальный идентификатор для этого атрибута. |
TypeId |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
Методы
Equals(Object) |
Возвращает значение, показывающее, равно ли значение данного объекта текущему атрибуту ProvidePropertyAttribute. |
GetHashCode() |
Возвращает хэш-код данного экземпляра. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |