Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

XsdDataContractImporter-Klasse

Ermöglicht die Transformation einer Reihe von XML-Schemadateien (.xsd) in Common Language Runtime (CLR)-Typen.

System.Object
  System.Runtime.Serialization.XsdDataContractImporter

Namespace:  System.Runtime.Serialization
Assembly:  System.Runtime.Serialization (in System.Runtime.Serialization.dll)

public class XsdDataContractImporter

Der XsdDataContractImporter-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeXsdDataContractImporter()Initialisiert eine neue Instanz der XsdDataContractImporter-Klasse.
Öffentliche MethodeXsdDataContractImporter(CodeCompileUnit)Initialisiert eine neue Instanz der XsdDataContractImporter-Klasse mit dem CodeCompileUnit, der zur Generierung von CLR-Code verwendet wird.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftCodeCompileUnitRuft einen CodeCompileUnit auf, der zum Speichern der generierten CLR-Typen verwendet wird.
Öffentliche EigenschaftOptionsRuft einen ImportOptions auf, der festlegbare Optionen für den Importvorgang enthält, oder legt diesen fest.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCanImport(XmlSchemaSet)Ruft einen Wert ab, der angibt, ob die in einem XmlSchemaSet enthaltenen Schemas in einen CodeCompileUnit transformiert werden können.
Öffentliche MethodeCanImport(XmlSchemaSet, ICollection<XmlQualifiedName>)Ruft einen Wert ab, der anzeigt, ob der in einem XmlSchemaSet enthaltene angegebene Typensatz in CLR-Typen transformiert werden kann, die in einen CodeCompileUnit generiert werden.
Öffentliche MethodeCanImport(XmlSchemaSet, XmlSchemaElement)Ruft einen Wert ab, der angibt, ob ein bestimmtes in einem XmlSchemaSet enthaltenes Schemaelement importiert werden kann.
Öffentliche MethodeCanImport(XmlSchemaSet, XmlQualifiedName)Ruft einen Wert ab, der angibt, ob die in einem XmlSchemaSet enthaltenen Schemas in einen CodeCompileUnit transformiert werden können.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetCodeTypeReference(XmlQualifiedName)Gibt einen CodeTypeReference an den CLR-Typ zurück, der für den Schematyp mit dem angegebenen XmlQualifiedName generiert wurde.
Öffentliche MethodeGetCodeTypeReference(XmlQualifiedName, XmlSchemaElement)Gibt einen CodeTypeReference für das angegebene qualifizierte XML-Element und Schemaelement zurück.
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetKnownTypeReferencesGibt eine Liste von CodeTypeReference-Objekten zurück, die die bekannten Typen darstellt, die bei der Generierung von Code für den angegebenen Schematyp erstellt wurden.
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeImport(XmlSchemaSet)Transformiert den angegebenen Satz von XML-Schemas, die in einem XmlSchemaSet enthalten sind, in einen CodeCompileUnit.
Öffentliche MethodeImport(XmlSchemaSet, ICollection<XmlQualifiedName>)Transformiert den angegebenen Satz von Schematypen, der in einem XmlSchemaSet enthalten ist, in CLR-Typen, die in einen CodeCompileUnit generiert werden.
Öffentliche MethodeImport(XmlSchemaSet, XmlSchemaElement)Transformiert das angegebene Schemaelement in dem Satz angegebener XML-Schemas in einen CodeCompileUnit und gibt einen XmlQualifiedName zurück, der den Datenvertragsnamen für das angegebene Element darstellt.
Öffentliche MethodeImport(XmlSchemaSet, XmlQualifiedName)Transformiert den angegebenen, in einem XmlSchemaSet enthaltenen XML-Schematyp in einen CodeCompileUnit.
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

Verwenden Sie den XsdDataContractImporter, wenn Sie einen Webdienst erstellen, der mit einem bestehenden Webdienst zusammenarbeiten muss, oder um Datenvertragstypen aus XML-Schemas zu erstellen. XsdDataContractImporter transformiert eine Gruppe von XML-Schemas und erstellt die .NET Framework-Typen, die den Datenvertrag in einer ausgewählten Programmiersprache darstellen. Um den Code zu erstellen, verwenden Sie die Klassen im System.CodeDom-Namespace.

Umgekehrt können Sie die XsdDataContractExporter-Klasse verwenden, wenn Sie einen Webdienst erstellt haben, der Daten enthält, die als CLR-Typen dargestellt werden, und wenn Sie für die von anderen Webdiensten zu verwendenden Datentypen XML-Schemas exportieren wollen. Dies bedeutet, dass XsdDataContractExporter einen Satz von CLR-Typen in einen Satz von XML-Schemas transformiert.

HinweisHinweis

Verwenden Sie zum Generieren von CLR-Typen aus XML-Schemas zur Entwurfszeit das ServiceModel Metadata Utility-Tool (Svcutil.exe). Um Code aus XSD-Dateien zu generieren, verwenden Sie den /dataContractOnly-Schalter des Tools. Sie können auch den XsdDataContractImporter verwenden, wenn Sie mehr Kontrolle über den Vorgang benötigen oder wenn dieser programmgesteuert sein muss.

Im folgenden Beispiel wird ein XmlSchemaSet erstellt und die Import-Methode aufgerufen, um einen CodeCompileUnit zu erstellen. Der CodeCompileUnit wird dann verwendet, um sowohl Visual C#- als auch Visual Basic-Codedateien zu erstellen.


using System;
using System.CodeDom.Compiler;
using System.CodeDom;
using System.Runtime.Serialization;
using System.IO;
using System.Xml;
using System.Xml.Schema;
using System.Globalization;

namespace XsdContractImporterExample
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                XmlSchemaSet schemas = Export();
                CodeCompileUnit ccu = Import(schemas);
                CompileCode(ccu, "Person.cs");
                CompileCode(ccu, "Person.vb");
            }
            catch (Exception exc)
            {
                Console.WriteLine("{0}: {1}", exc.Message, exc.StackTrace);
            }
            finally
            {
                Console.WriteLine("Press <Enter> to end....");
                Console.ReadLine();
            }

        }

        static XmlSchemaSet Export()
        {
            XsdDataContractExporter ex = new XsdDataContractExporter();
            ex.Export(typeof(Person));
            return ex.Schemas;
        }
        static CodeCompileUnit Import(XmlSchemaSet schemas)
        {

            XsdDataContractImporter imp = new XsdDataContractImporter();

            // The EnableDataBinding option adds a RaisePropertyChanged method to
            // the generated code. The GenerateInternal causes code access to be
            // set to internal.
            ImportOptions iOptions = new ImportOptions();
            iOptions.EnableDataBinding = true;
            iOptions.GenerateInternal = true;
            imp.Options = iOptions;


            if (imp.CanImport(schemas))
            {
                imp.Import(schemas);
                return imp.CodeCompileUnit;
            }
            else
                return null;
        }
        static void CompileCode(CodeCompileUnit ccu, string sourceName)
        {
            CodeDomProvider provider = null;
            FileInfo sourceFile = new FileInfo(sourceName);
            // Select the code provider based on the input file extension, either C# or Visual Basic.
            if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".CS")
            {
                provider = new Microsoft.CSharp.CSharpCodeProvider();
            }
            else if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".VB")
            {
                provider = new Microsoft.VisualBasic.VBCodeProvider();
            }
            else
            {
                Console.WriteLine("Source file must have a .cs or .vb extension");
            }
            if (provider != null)
            {
                CodeGeneratorOptions options = new CodeGeneratorOptions();
                // Set code formatting options to your preference.
                options.BlankLinesBetweenMembers = true;
                options.BracingStyle = "C";

                StreamWriter sw = new StreamWriter(sourceName);
                provider.GenerateCodeFromCompileUnit(ccu, sw, options);
                sw.Close();
            }
        }
    }

    [DataContract]
    public class Person
    {
        [DataMember]
        public string FirstName;

        [DataMember]
        public string LastName;

        public Person(string newFName, string newLName)
        {
            FirstName = newFName;
            LastName = newLName;
        }
    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft