ProvidePropertyAttribute Class

 

Specifies the name of the property that an implementer of IExtenderProvider offers to other components. This class cannot be inherited

Namespace:   System.ComponentModel
Assembly:  System (in System.dll)

System::Object
  System::Attribute
    System.ComponentModel::ProvidePropertyAttribute

[AttributeUsageAttribute(AttributeTargets::Class, AllowMultiple = true)]
public ref class ProvidePropertyAttribute sealed : Attribute

NameDescription
System_CAPS_pubmethodProvidePropertyAttribute(String^, String^)

Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and the type of its receiver.

System_CAPS_pubmethodProvidePropertyAttribute(String^, Type^)

Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and its Type.

NameDescription
System_CAPS_pubpropertyPropertyName

Gets the name of a property that this class provides.

System_CAPS_pubpropertyReceiverTypeName

Gets the name of the data type this property can extend.

System_CAPS_pubpropertyTypeId

Gets a unique identifier for this attribute.(Overrides Attribute::TypeId.)

NameDescription
System_CAPS_pubmethodEquals(Object^)

Returns whether the value of the given object is equal to the current ProvidePropertyAttribute.(Overrides Attribute::Equals(Object^).)

System_CAPS_pubmethodGetHashCode()

Returns the hash code for this instance.(Overrides Attribute::GetHashCode().)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodIsDefaultAttribute()

When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.(Inherited from Attribute.)

System_CAPS_pubmethodMatch(Object^)

When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute::GetIDsOfNames(Guid%, IntPtr, UInt32, UInt32, IntPtr)

Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute::GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute::GetTypeInfoCount(UInt32%)

Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute::Invoke(UInt32, Guid%, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Provides access to properties and methods exposed by an object.(Inherited from Attribute.)

When you mark a class with this attribute, you tell the code generator to create an extender property with the name you provide. The marked class must implement IExtenderProvider. As a result, the new property can be used by other components in a container.

Within the marked class, you must implement Get <name> and Set <name> methods. For example, if you mark a class with [ProvideProperty("PropertyName")], you must implement GetPropertyName and SetPropertyName methods. 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 Extending Metadata Using Attributes.

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.
};

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: