RequirementAttribute 類別
定義 RequirementValidator 類別所使用的屬性。
繼承階層架構
System.Object
System.Attribute
Microsoft.Windows.Design.RequirementAttribute
Microsoft.Windows.Design.Policies.UsesItemPolicyAttribute
Microsoft.Windows.Design.RequiresContextItemAttribute
Microsoft.Windows.Design.RequiresServiceAttribute
命名空間: Microsoft.Windows.Design
組件: Microsoft.Windows.Design.Extensibility (在 Microsoft.Windows.Design.Extensibility.dll 中)
語法
'宣告
Public MustInherit Class RequirementAttribute _
Inherits Attribute
public abstract class RequirementAttribute : Attribute
public ref class RequirementAttribute abstract : public Attribute
[<AbstractClass>]
type RequirementAttribute =
class
inherit Attribute
end
public abstract class RequirementAttribute extends Attribute
RequirementAttribute 型別會公開下列成員。
建構函式
名稱 | 說明 | |
---|---|---|
RequirementAttribute | 初始化 RequirementAttribute 類別的新執行個體。 |
回頁首
屬性
名稱 | 說明 | |
---|---|---|
AllRequired | 取得值,這個值表示是否需要相同型別的所有需求屬性。 | |
TypeId | 在衍生類別中實作時,取得這個 Attribute 的唯一識別項。 (繼承自 Attribute)。 |
回頁首
方法
名稱 | 說明 | |
---|---|---|
CreateSubscription | 傳回 RequirementSubscription 物件,當這個屬性中包含的需求變更時,這個物件可用來接受通知。 | |
Equals | 基礎架構。傳回數值,表示這個執行個體是否等於指定的物件。 (繼承自 Attribute)。 | |
Finalize | 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。 | |
GetHashCode | 傳回這個執行個體的雜湊程式碼。 (繼承自 Attribute)。 | |
GetType | 取得目前執行個體的 Type。 (繼承自 Object)。 | |
IsDefaultAttribute | 在衍生類別中覆寫時,表示這個執行個體的值是否為衍生類別的預設值。 (繼承自 Attribute)。 | |
Match | 在衍生類別中覆寫時,會傳回值,表示這個執行個體是否等於指定物件。 (繼承自 Attribute)。 | |
MeetsRequirement | 判斷 EditingContext 是否符合這個屬性中指定的需求。 | |
MemberwiseClone | 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。 | |
ToString | 傳回表示目前物件的字串。 (繼承自 Object)。 |
回頁首
明確介面實作
名稱 | 說明 | |
---|---|---|
_Attribute.GetIDsOfNames | 將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。 (繼承自 Attribute)。 | |
_Attribute.GetTypeInfo | 擷取物件的型別資訊,可以用來取得介面的型別資訊。 (繼承自 Attribute)。 | |
_Attribute.GetTypeInfoCount | 擷取物件提供的型別資訊介面數目 (0 或 1)。 (繼承自 Attribute)。 | |
_Attribute.Invoke | 提供物件所公開的屬性和方法的存取權。 (繼承自 Attribute)。 |
回頁首
備註
您可以衍生自抽象 RequirementAttribute 類別,以指定功能提供者和功能連接器的需求。
RequirementValidator 會檢查型別中是否有 RequirementAttribute 屬性。 針對它找到的每個 RequirementAttribute,它都會藉由傳遞 EditingContext 類別的執行個體來呼叫抽象 MeetsRequirement 方法。 如 RequiresServiceAttribute 的類別會衍生自 RequirementAttribute 並檢查內容中是否有指定的需求。
這個系統只允許設計工具啟動可在編輯內容中順利執行的程式碼。
您可以衍生自 RequirementAttribute 並實作抽象 MeetsRequirement 方法,以定義自己的自訂需求。
範例
下列程式碼範例說明如何使用 UsesItemPolicyAttribute (衍生自 RequirementAttribute),將自訂 Surrogate 原則附加至功能提供者。 如需完整的程式碼清單,請參閱 HOW TO:建立 Surrogate 原則。
' The DockPanelAdornerProvider class implements an adorner
' that you can use to set the Margin property by using a
' drag operation. The DockPanelPolicy class enables a
' container policy for offering additional tasks and
' adorners on the panel's children.
<UsesItemPolicy(GetType(DockPanelPolicy))> _
Class DockPanelAdornerProvider
Inherits AdornerProvider
Public Sub New()
' The adorner is a Rectangle element.
Dim r As New Rectangle()
r.Width = 23.0
r.Height = 23.0
r.Fill = AdornerColors.GlyphFillBrush
' Set the rectangle's placement in the adorner panel.
AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft)
AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop)
Dim p As New AdornerPanel()
p.Children.Add(r)
AdornerPanel.SetTask(r, New DockPanelMarginTask())
Adorners.Add(p)
End Sub
End Class
// The DockPanelAdornerProvider class implements an adorner
// that you can use to set the Margin property by using a
// drag operation. The DockPanelPolicy class enables a
// container policy for offering additional tasks and
// adorners on the panel's children.
[UsesItemPolicy(typeof(DockPanelPolicy))]
class DockPanelAdornerProvider : AdornerProvider
{
public DockPanelAdornerProvider()
{
// The adorner is a Rectangle element.
Rectangle r = new Rectangle();
r.Width = 23.0;
r.Height = 23.0;
r.Fill = AdornerColors.GlyphFillBrush;
// Set the rectangle's placement in the adorner panel.
AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft);
AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop);
AdornerPanel p = new AdornerPanel();
p.Children.Add(r);
AdornerPanel.SetTask(r, new DockPanelMarginTask());
Adorners.Add(p);
}
}
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。