x:FactoryMethod 指示詞

指定 XAML 處理器在解析其備份類型之後,應該用來初始化物件之建構函式以外的方法。

XAML 屬性使用方式,無 x:Arguments

<object x:FactoryMethod="methodname"...>  
  ...  
</object>  

XAML 屬性使用方式,x:Arguments as Element(s)

<object x:FactoryMethod="methodname"...>  
  <x:Arguments>  
    oneOrMoreObjectElements  
  </x:Arguments>  
</object>  

XAML 值

Description
methodname XAML 處理器呼叫之方法的字串方法名稱,以初始化指定為 object 的實例。 請參閱<備註>。
oneOrMoreObjectElements 指定 Factory 方法參數之物件的一或多個物件專案。 訂單很重要;它表示應該將引數傳遞至 Factory 方法的順序。

備註

如果 methodname 是實例方法,則無法限定它。

支援靜態方法做為 Factory 方法。 如果 methodname 是靜態方法, methodname 則會以組合方式 typeName.methodName 提供,其中 typeName 會命名定義靜態 Factory 方法的類別。 typeName 如果參考對應 xmlns 中的類型,可以是前置詞限定。 typeName 可以是與 typeof(object) 不同的類型。

Factory 方法必須是型別的宣告公用方法,可備份相關物件專案。

Factory 方法必須傳回可指派給相關物件的實例。 Factory 方法絕對不應該傳回 Null。

x:Arguments 會以與處理站方法簽章最相符的原則運作。 比對會先評估參數計數。 如果參數計數有一個以上的可能比對,則會評估參數類型,並判斷最佳比對。 如果評估階段之後仍有模棱兩可的情況,則未定義 XAML 處理器行為。

元素 x:FactoryMethod 使用方式不是一般意義上的屬性專案使用方式,因為 指示詞標記不會參考包含物件元素的類型。 預期元素使用方式不如屬性使用方式。 x:Arguments (屬性或元素使用方式) 可以搭配 x:FactoryMethod 元素使用方式使用,但這不會特別顯示在 [使用方式] 區段中。

x:FactoryMethod 作為專案必須位於任何其他屬性元素之前,必須 x:Arguments 位於任何也提供為專案之前,而且必須在任何內容/內部文字/初始化文字之前。

另請參閱