共用方式為


從類別導出架構

若要從數據合約模型中使用的類別產生 XML 架構定義語言 (XSD) 架構,請使用 類別 XsdDataContractExporter 。 本主題描述建立架構的程式。

匯出程式

架構導出過程從一種或多種類型開始,並產生 XmlSchemaSet,描述這些類型的 XML 投影。

XmlSchemaSet是 .NET Framework 架構物件模型 (SOM) 的一部分,代表一組 XSD 架構檔。 若要從 XmlSchemaSet建立 XSD 檔,請使用 類別 SchemasXmlSchemaSet 屬性的架構集合。 然後使用 XmlSchema 序列化每個 XmlSerializer 物件。

匯出架構

  1. 創建XsdDataContractExporter的實例。

  2. 選擇性。 將XmlSchemaSet傳入建構函式。 在此情況下,在架構匯出期間產生的架構會新增至這個 XmlSchemaSet 實例,而不是從空白 XmlSchemaSet開始。

  3. 選擇性。 呼叫其中 CanExport 一個方法。 方法會決定是否可以匯出指定的型別。 方法在下一個步驟中具有與 Export 方法相同的多載。

  4. 呼叫其中 Export 一個方法。 有三個函數多載,可以接受TypeList<T>型別的Type物件,或List<T>型別的Assembly物件。 在最後一個案例中,會匯出所有指定元件中的所有類型。

    多次呼叫 Export 方法會導致多個項目被新增至相同的 XmlSchemaSet。 如果類型已經存在於XmlSchemaSet中,則不會生成。 因此,在相同的Export上多次呼叫XsdDataContractExporter,比創建多個XsdDataContractExporter類別的實例更好。 這可避免產生重複的架構類型。

    備註

    如果在匯出期間發生錯誤,則XmlSchemaSet將處於無法預測的狀態。

  5. 您可以透過 XmlSchemaSet 屬性存取 Schemas

匯出選項

您可以將 Options 的屬性 XsdDataContractExporter 設定為類別的ExportOptions實例,以控制匯出過程的各個方面。 具體來說,您可以設定下列選項:

輔助方法

除了其導出架構的主要角色之外,XsdDataContractExporter 還提供數個實用的輔助方法,提供類型相關的資訊。 這些包括:

  • GetRootElementName 方法。 這個方法會採用 Type ,並傳回 XmlQualifiedName ,表示當這個型別串行化為根物件時所使用的根元素名稱和命名空間。

  • GetSchemaTypeName 方法。 這個方法會採用 Type ,並傳回 XmlQualifiedName ,表示如果這個型別匯出至架構,則會使用 XSD 架構類型的名稱。 對於 IXmlSerializable 表示為架構中匿名型別的類型,這個方法會傳 null回 。

  • GetSchemaType 方法。 這個方法只適用於 IXmlSerializable 架構中以匿名類型表示的類型,並針對所有其他類型傳 null 回 。 對於匿名型別,這個方法會 XmlSchemaType 傳回 ,表示指定的 Type

匯出選項會影響所有這些方法。

另請參閱