ProvidePropertyAttribute 클래스
IExtenderProvider의 구현자가 다른 구성 요소에 제공하는 속성의 이름을 지정합니다. 이 클래스는 상속될 수 없습니다.
네임스페이스: System.ComponentModel
어셈블리: System(system.dll)
구문
‘선언
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple:=True)> _
Public NotInheritable Class ProvidePropertyAttribute
Inherits Attribute
‘사용 방법
Dim instance As ProvidePropertyAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=true)]
public sealed class ProvidePropertyAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class, AllowMultiple=true)]
public ref class ProvidePropertyAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=true) */
public final class ProvidePropertyAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple=true)
public final class ProvidePropertyAttribute extends Attribute
설명
이 특성으로 클래스를 표시하는 경우 코드 생성기에서 사용자가 제공하는 이름의 Extender 속성을 만들 수 있습니다. 표시된 클래스에서 IExtenderProvider를 구현해야 합니다. 따라서 컨테이너의 다른 구성 요소에 새 속성을 사용할 수 있습니다.
표시된 클래스 안에 Get<name> 및 Set<name> 메서드를 구현해야 합니다. 예를 들어, [ProvideProperty("PropertyName")]로 클래스를 표시하는 경우 GetPropertyName 및 SetPropertyName 메서드를 구현해야 합니다. 새 속성을 extender 속성으로 지정하려면 IExtenderProvider에서 구현해야 하며 CanExtend 메서드도 구현해야 합니다.
자세한 내용은 특성 개요 및 특성을 사용하여 메타데이터 확장을 참조하십시오.
예제
다음 예제에서는 ProvidePropertyAttribute로 MyClass
를 표시하여 GetMyProperty
및 SetMyProperty
메서드에서 MyProperty
라는 속성을 만들도록 컴파일러에 지시합니다.
<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 'SetMyProperty
' 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
[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",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.
};
public class MyClass implements IExtenderProvider
{
protected CultureInfo ciMine = null;
// Provides the Get portion of MyProperty.
public CultureInfo GetMyProperty(Control myControl)
{
// Insert code here.
return ciMine;
} //GetMyProperty
// Provides the Set portion of MyProperty.
public void SetMyProperty(Control myControl, String value)
{
// Insert code here.
} //SetMyProperty
/* When you inherit from IExtenderProvider, you must implement the
* CanExtend method.
*/
public boolean CanExtend(Object target)
{
return target instanceof Control;
} //CanExtend
// Insert additional code here.
} //MyClass
상속 계층 구조
System.Object
System.Attribute
System.ComponentModel.ProvidePropertyAttribute
스레드로부터의 안전성
이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
플랫폼
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원