從類別匯出結構描述

如果要從用於資料合約模型中的類別產生 XML 結構描述定義語言 (XSD),請使用 XsdDataContractExporter 類別。 這個主題將說明建立結構描述的程序。

匯出程序

結構描述匯出程序是以一個或多個類型開始,然後產生描述這些類型的 XML 規劃的 XmlSchemaSet

XmlSchemaSet 涵蓋於 .NET Framework 結構描述物件模型 (SOM)。該模型代表一組 XSD 結構描述文件。 如果要從 XmlSchemaSet建立 XSD 文件,請使用來自 Schemas 類別之 XmlSchemaSet 屬性的結構描述集合。 然後使用 XmlSchema 序列化各個 XmlSerializer物件。

匯出結構描述

  1. 建立 XsdDataContractExporter的執行個體。

  2. 選擇性。 在建構函式中傳遞 XmlSchemaSet 。 在這種情況下,在結構描述匯出期間產生的結構描述會新增至這個 XmlSchemaSet 執行個體,而不是從空白的 XmlSchemaSet開始。

  3. 選擇性。 呼叫其中一個 CanExport 方法。 此方法會判斷是否可以匯出指定的類型。 此方法的多載和下一個步驟中的 Export 方法相同。

  4. 呼叫其中一個 Export 方法。 有三種多載採用 TypeList<T> 物件的 TypeList<T> 物件的 Assembly 。 在最後一種情況中,會匯出所有指定組件中的所有類型。

    Export 方法的多個呼叫會造成將多個項目新增至相同的 XmlSchemaSet。 如果型別已經存在,便不會產生至 XmlSchemaSet 中。 因此,如果要建立 Export 類別的多個執行個體,會偏好在相同的 XsdDataContractExporter 上呼叫多次 XsdDataContractExporter 。 如此可避免產生重複的結構描述型別。

    注意

    如果在匯出期間有失敗, XmlSchemaSet 將會處於不能預測的狀態。

  5. 請透過 XmlSchemaSet 屬性存取 Schemas

匯出選項

您可以將 OptionsXsdDataContractExporter 屬性設定為 ExportOptions 類別的執行個體,以控制匯出處理程序的各方面。 特別是,您可以設定下列選項:

Helper 方法

除了匯出結構描述的主要角色之外, XsdDataContractExporter 還提供數種有用的 Helper 方法,提供有關型別的資訊。 包括:

  • GetRootElementName 方法。 這個方法會採用 Type 並傳回 XmlQualifiedName ,代表如果將這個型別序列化為根物件,會使用的根項目名稱和命名空間。

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

  • GetSchemaType 方法。 這個方法只能使用在結構描述中表示為匿名型別的 IXmlSerializable 型別,並為所有其他的型別傳回 null 。 對於匿名型別,這個方法會傳回代表指定 XmlSchemaTypeType

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

另請參閱