ProvidePropertyAttribute Класс

Определение

Определяет имя свойства, которое средство реализации IExtenderProvider предоставляет другим компонентам.Specifies the name of the property that an implementer of IExtenderProvider offers to other components. Этот класс не наследуется.This class cannot be inherited.

public ref class ProvidePropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true)]
public sealed class ProvidePropertyAttribute : Attribute
type ProvidePropertyAttribute = class
    inherit Attribute
Public NotInheritable Class ProvidePropertyAttribute
Inherits Attribute
Наследование
ProvidePropertyAttribute
Атрибуты

Примеры

Следующий пример помечает MyClass с ProvidePropertyAttribute, который указывает компилятору создать свойство с именем MyProperty из методов GetMyProperty и SetMyProperty.The following example marks MyClass with a ProvidePropertyAttribute that tells the compiler to create a property called MyProperty from the GetMyProperty and SetMyProperty methods.

[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

Комментарии

Пометив класс с этим атрибутом, вы указываете генератору кода создать свойство-расширитель с предоставленным именем.When you mark a class with this attribute, you tell the code generator to create an extender property with the name you provide. Помеченный класс должен реализовывать IExtenderProvider.The marked class must implement IExtenderProvider. В результате новое свойство может использоваться другими компонентами в контейнере.As a result, the new property can be used by other components in a container.

В помеченном классе необходимо реализовать методы Get <name > и Set <name >.Within the marked class, you must implement Get <name> and Set <name> methods. Например, если класс помечается [Провидепроперти ("PropertyName")], необходимо реализовать методы GetPropertyName и SetPropertyName.For example, if you mark a class with [ProvideProperty("PropertyName")], you must implement GetPropertyName and SetPropertyName methods. Чтобы указать, что новое свойство будет свойством расширения, необходимо реализовать из IExtenderProvider, также необходимо реализовать метод CanExtend.To specify that the new property will be an extender property, you must implement from IExtenderProvider, you must also implement a CanExtend method.

Дополнительные сведения см. в разделе Атрибуты.For more information, see Attributes.

Конструкторы

ProvidePropertyAttribute(String, String)

Инициализирует новый экземпляр класса ProvidePropertyAttribute, используя данное имя свойства и тип его получателя.Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and the type of its receiver.

ProvidePropertyAttribute(String, Type)

Инициализирует новый экземпляр класса ProvidePropertyAttribute, используя имя свойства и его тип Type.Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and its Type.

Свойства

PropertyName

Возвращает имя свойства, предоставляемого данным классом.Gets the name of a property that this class provides.

ReceiverTypeName

Возвращает имя типа данных, на который может распространяться это свойство.Gets the name of the data type this property can extend.

TypeId

Возвращает уникальный идентификатор для этого атрибута.Gets a unique identifier for this attribute.

Методы

Equals(Object)

Возвращает значение, показывающее, равно ли значение данного объекта текущему атрибуту ProvidePropertyAttribute.Returns whether the value of the given object is equal to the current ProvidePropertyAttribute.

GetHashCode()

Возвращает хэш-код данного экземпляра.Returns the hash code for this instance.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

(Унаследовано от Attribute)

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