Возникли проблемы при использовании «brew link» для переключения между PostgreSQL

У вас есть две возможности.

Метод 1. Инструмент XSD

Предположим, что у вас есть ваш XML-файл в этом месте C:\path\to\xml\file.xml

  1. Open Developer Command Prompt Вы можете найти его в Start Menu > Programs > Microsoft Visual Studio 2012 > Visual Studio Tools Или, если у вас есть Windows 8, вы можете просто начать вводить команду командной строки разработчика в Начальный экран
  2. Измените местоположение в каталоге файла XML, набрав cd /D "C:\path\to\xml"
  3. Создайте файл XSD из вашего xml-файла, набрав xsd file.xml
  4. Создайте классы C #, набрав xsd /c file.xsd

И все! Вы создали классы C # из xml-файла в C:\path\to\xml\file.cs

Метод 2 - Вставить специальный

Требуемый Visual Studio 2012 +

  1. Скопировать содержимое вашего XML-файл в буфер обмена
  2. Добавьте к вашему решению новый пустой файл класса (Shift + Alt + C)
  3. Откройте этот файл и в меню нажмите Edit > Paste special > Paste XML As Classes enter image description here [/g4]

И все!

Использование


Использование с этим вспомогательным классом очень просто:

using System;
using System.IO;
using System.Web.Script.Serialization; // Add reference: System.Web.Extensions
using System.Xml;
using System.Xml.Serialization;

namespace Helpers
{
    internal static class ParseHelpers
    {
        private static JavaScriptSerializer json;
        private static JavaScriptSerializer JSON { get { return json ?? (json = new JavaScriptSerializer()); } }

        public static Stream ToStream(this string @this)
        {
            var stream = new MemoryStream();
            var writer = new StreamWriter(stream);
            writer.Write(@this);
            writer.Flush();
            stream.Position = 0;
            return stream;
        }


        public static T ParseXML<T>(this string @this) where T : class
        {
            var reader = XmlReader.Create(@this.Trim().ToStream(), new XmlReaderSettings() { ConformanceLevel = ConformanceLevel.Document });
            return new XmlSerializer(typeof(T)).Deserialize(reader) as T;
        }

        public static T ParseJSON<T>(this string @this) where T : class
        {
            return JSON.Deserialize<T>(@this.Trim());
        }
    }
}

Все, что вам нужно сделать сейчас, это:

    public class JSONRoot
    {
        public catalog catalog { get; set; }
    }
    // ...

    string xml = File.ReadAllText(@"D:\file.xml");
    var catalog1 = xml.ParseXML<catalog>();

    string json = File.ReadAllText(@"D:\file.json");
    var catalog2 = json.ParseJSON<JSONRoot>();
13
задан Prof. Falken 15 February 2012 в 10:42
поделиться