小编KRP*_*KRP的帖子

从动态xml转换为c#对象

我需要输入将动态xml转换为定义的c#对象模型

我的样本xml如下:

<?xml version="1.0" encoding="utf-8" ?>
  <Persons>
    <Person>
      <Id>10</Id>
      <FirstName> Dino </FirstName>
      <LastName> Esposito </LastName>
      <Addresses>
        <Address>
          <AddressType>BillTo</AddressType>
          <Street1></Street1>
          <Street2></Street2>
          <Street3></Street3>
          <City>Moscow</City>
        </Address>
        <Address>
          <AddressType>ShipTo</AddressType>
          <Street1></Street1>
          <Street2></Street2>
          <Street3></Street3>
          <City>Moscow</City>
        </Address>
        <Address>
          <AddressType>Contact</AddressType>
          <Street1></Street1>
          <Street2></Street2>
          <Street3></Street3>
          <City>Moscow</City>
        </Address>
      </Addresses>
    </Person>
  </Persons>
Run Code Online (Sandbox Code Playgroud)

我希望在运行时将此xml的值转换为C#对象.我希望定义一个类似于下面的对象:我的预期类对象C#如下:

public class Person
{
    public int Id { get; set; }
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public IList<Address> Addresses { get; set; }
}

public class Address
{
    public string …
Run Code Online (Sandbox Code Playgroud)

.net c# dynamic expandoobject c#-4.0

6
推荐指数
2
解决办法
2万
查看次数

EventSource .net 4.0 GenerateManifest

我一直在尝试在.net 4.0中使用ETW.

我已经开始使用Microsoft EventSource Library 1.0.4-beta(https://www.nuget.org/packages/Microsoft.Diagnostics.Tracing.EventSource)

这是我为我的应用程序生成事件而编写的代码.

[EventSource(Name = "Samples-EventSourceDemos-EventSourceLogger")]
public sealed class EventSourceLogger : EventSource
{
    public static EventSourceLogger Log = new EventSourceLogger();

    public static string GetManifest()
    {
        return GenerateManifest(typeof(EventSourceLogger), null);
    }

    [Event(200, Level = Microsoft.Diagnostics.Tracing.EventLevel.Informational, Task = EventTask.None, Version = 1,
        Opcode = EventOpcode.Info, Keywords = EventKeywords.None, Channel = EventChannel.Admin,
        Message = "Test Message")]
    public void LogEtwInfoEventMessage(string jsonArgs)
    {
        if (!this.IsEnabled()) return;

        this.WriteEvent(200, jsonArgs);
    }

    [Event(400, Level = Microsoft.Diagnostics.Tracing.EventLevel.Error, Task = EventTask.None, Version = 1,
        Opcode …
Run Code Online (Sandbox Code Playgroud)

system.diagnostics etw .net-4.0 event-log etw-eventsource

3
推荐指数
1
解决办法
3142
查看次数

使用char - C#进行数据协定反序列化问题

我的代码参考

var sample = DataContractDeserializeObject<MySample>(
                        "<MySample xmlns=\"http://schemas.datacontract.org/2004/07/Sample\"><Charecter>'D'</Charecter></MySample>");

When i run this code. i get this message "There was an error deserializing the object of type MySample. Content cannot be converted to the type Int. Line 1, position 129."
Run Code Online (Sandbox Code Playgroud)

我的反序列化代码

 public static T DataContractDeserializeObject<T>(string objectToDeserialize)
        {
            using (XmlReader reader = XmlReader.Create(new StringReader(objectToDeserialize)))
            {
                var serializer =
                    new DataContractSerializer(typeof(T));
                return (T)serializer.ReadObject(reader);
            }
        }
Run Code Online (Sandbox Code Playgroud)

我的数据合同

[DataContract]
    public class MySample
    {
        [DataMember]
        public char Charecter { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

如何对char进行反序列化.谢谢.

c# serialization datacontractserializer xmlserializer

2
推荐指数
1
解决办法
425
查看次数