ProvidePropertyAttribute Class
Specifies the name of the property that an implementer of IExtenderProvider offers to other components. This class cannot be inherited
Assembly: System (in System.dll)
| Name | Description | |
|---|---|---|
![]() | ProvidePropertyAttribute(String^, String^) | Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and the type of its receiver. |
![]() | ProvidePropertyAttribute(String^, Type^) | Initializes a new instance of the ProvidePropertyAttribute class with the name of the property and its Type. |
| Name | Description | |
|---|---|---|
![]() | 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.(Overrides Attribute::TypeId.) |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Returns whether the value of the given object is equal to the current ProvidePropertyAttribute.(Overrides Attribute::Equals(Object^).) |
![]() | GetHashCode() | Returns the hash code for this instance.(Overrides Attribute::GetHashCode().) |
![]() | GetType() | |
![]() | IsDefaultAttribute() | When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.(Inherited from Attribute.) |
![]() | Match(Object^) | When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.) |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | _Attribute::GetIDsOfNames(Guid%, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from 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.(Inherited from Attribute.) |
![]() ![]() | _Attribute::GetTypeInfoCount(UInt32%) | Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.) |
![]() ![]() | _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. };
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.



