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)
The ProvidePropertyAttribute type exposes the following members.
| 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 | 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 | Gets the Type of the current instance. (Inherited from Object.) |
![]() | 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 | 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 | Maps a set of names to a corresponding set of dispatch identifiers. (Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfo | Retrieves the type information for an object, which can be used to get the type information for an interface. (Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfoCount | Retrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from Attribute.) |
![]() ![]() | _Attribute.Invoke | 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", 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. }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
