x:FactoryMethod 지시문x:FactoryMethod Directive

지원 형식을 확인 한 후 XAML 프로세서에서 개체를 초기화 하는 데 사용 해야 하는 생성자 이외의 메서드를 지정 합니다.Specifies a method other than a constructor that a XAML processor should use to initialize an object after resolving its backing type.

XAML 특성 사용, x:Arguments 안 함XAML Attribute Usage, no x:Arguments

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

XAML 특성 사용, x:Arguments as 요소XAML Attribute Usage, x:Arguments as Element(s)

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

XAML 값XAML Values

methodname 로 지정 된 인스턴스를 초기화 하기 위해 XAML 프로세서에서 호출 하는 메서드의 문자열 메서드 이름입니다 object .The string method name of a method that XAML processors call to initialize the instance specified as object. 설명 부분을 참조하세요.See Remarks.
oneOrMoreObjectElements 팩터리 메서드 매개 변수를 지정 하는 개체에 대 한 하나 이상의 개체 요소입니다.One or more object elements for objects that specify factory method parameters. 순서가 중요 합니다. 인수가 팩터리 메서드에 전달 되어야 하는 순서를 나타냅니다.Order is significant; it signifies the order in which arguments should be passed to the factory method.

설명Remarks

methodname가 인스턴스 메서드인 경우 정규화 할 수 없습니다.If methodname is an instance method, it cannot be qualified.

팩터리 메서드인 정적 메서드가 지원 됩니다.Static methods as factory methods are supported. methodname가 정적 메서드인 경우 methodname 는 조합으로 제공 됩니다 typeName.methodName . 여기서는 typeName 정적 팩터리 메서드를 정의 하는 클래스의 이름을 지정 합니다.If methodname is a static method, methodname is provided as a typeName.methodName combination, where typeName names the class that defines the static factory method. typeName 매핑된 xmlns의 형식을 참조 하는 경우에는 접두사가 한정 될 수 있습니다.typeName can be prefix-qualified if referring to a type in a mapped xmlns. typeName 는와 다른 형식일 수 있습니다 typeof(object) .typeName can be a different type than typeof(object).

팩터리 메서드는 관련 개체 요소를 지 원하는 형식의 선언 된 공용 메서드 여야 합니다.The factory method must be a declared public method of the type that backs the relevant object element.

팩터리 메서드는 관련 개체에 할당할 수 있는 인스턴스를 반환 해야 합니다.The factory method must return an instance that is assignable to the relevant object. 팩터리 메서드는 null을 반환 하지 않아야 합니다.Factory methods should never return null.

x:Arguments 팩터리 메서드의 시그니처와 가장 일치 하는 원칙에 대해 작동 합니다.x:Arguments operates on a principle of best match for signatures of factory methods. 일치는 먼저 매개 변수 개수를 계산 합니다.Matching evaluates the parameter count first. 매개 변수 개수에 대해 일치 하는 항목이 두 개 이상 있는 경우 매개 변수 형식이 평가 되 고 가장 일치 하는 항목이 결정 됩니다.If there is more than one possible match for a parameter count, parameter type is then evaluated and best match is determined. 이 평가 단계 후에도 모호성이 여전히 발생 하면 XAML 프로세서 동작이 정의 되지 않습니다.If there is still ambiguity after this phase of evaluation, XAML processor behavior is undefined.

x:FactoryMethod지시문 태그가 포함 하는 개체 요소의 형식을 참조 하지 않기 때문에 요소 사용은 일반적인 의미에서 속성 요소 사용이 아닙니다.The x:FactoryMethod element usage is not property element usage in the typical sense, because the directive markup does not reference the containing object element's type. 요소 사용이 특성 사용 보다 일반적이 지 않은 것으로 예상 됩니다.It is expected that element usage is less common than attribute usage. x:Arguments (특성 또는 요소 사용)은 요소 사용량과 함께 사용할 수 x:FactoryMethod 있지만 사용 섹션에는 구체적으로 표시 되지 않습니다.x:Arguments (either attribute or element usage) can be used along with x:FactoryMethod element usage, but this is not specifically shown in the Usage sections.

x:FactoryMethod 요소는 다른 속성 요소 앞에와 야 하며, 요소로 제공 되는 항목 앞에 x:Arguments 와 야 하며 모든 내용/내부 텍스트/초기화 텍스트 앞에와 야 합니다.x:FactoryMethod as an element must precede any other property elements, must precede any x:Arguments also provided as elements, and must precede any content/inner text/initialization text.

참고 항목See also