我正在开发Windows应用商店应用程序.
我有以下手动创建的Fault类:
[XmlRoot(Namespace = "http://schemas.xmlsoap.org/soap/envelope/", ElementName = "Fault")]
public partial class SoapFault
{
[XmlElement(Form = XmlSchemaForm.Unqualified, ElementName = "faultcode")]
public String FaultCode { get; set; }
[XmlElement(Form = XmlSchemaForm.Unqualified, ElementName = "faultstring")]
public String FaultDescription { get; set; }
[XmlElement(Form = XmlSchemaForm.Unqualified, ElementName = "detail")]
public InnerException[] Detail { get; set; }
}
[XmlType(Namespace = "http://my.namespace.com", TypeName = "InnerException")]
public partial class InnerException
{
[XmlElement(Form = XmlSchemaForm.Unqualified, ElementName = "message")]
public String Message { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我试图阅读的服务器的回复:
<env:Envelope …Run Code Online (Sandbox Code Playgroud) 我正在尝试反序列化XML。XML示例如下
<?xml version="1.0" ?>
<TRANSACTION_RESPONSE>
<TRANSACTION>
<TRANSACTION_ID>25429</TRANSACTION_ID>
<MERCHANT_ACC_NO>02700701354375000964</MERCHANT_ACC_NO>
<TXN_STATUS>F</TXN_STATUS>
<TXN_SIGNATURE>a16af68d4c3e2280e44bd7c2c23f2af6cb1f0e5a28c266ea741608e72b1a5e4224da5b975909cc43c53b6c0f7f1bbf0820269caa3e350dd1812484edc499b279</TXN_SIGNATURE>
<TXN_SIGNATURE2>B1684258EA112C8B5BA51F73CDA9864D1BB98E04F5A78B67A3E539BEF96CCF4D16CFF6B9E04818B50E855E0783BB075309D112CA596BDC49F9738C4BF3AA1FB4</TXN_SIGNATURE2>
<TRAN_DATE>29-09-2015 07:36:59</TRAN_DATE>
<MERCHANT_TRANID>150929093703RUDZMX4</MERCHANT_TRANID>
<RESPONSE_CODE>9967</RESPONSE_CODE>
<RESPONSE_DESC>Bank rejected transaction!</RESPONSE_DESC>
<CUSTOMER_ID>RUDZMX</CUSTOMER_ID>
<AUTH_ID />
<AUTH_DATE />
<CAPTURE_DATE />
<SALES_DATE />
<VOID_REV_DATE />
<REFUND_DATE />
<REFUND_AMOUNT>0.00</REFUND_AMOUNT>
</TRANSACTION>
</TRANSACTION_RESPONSE>
Run Code Online (Sandbox Code Playgroud)
以下是课程
[XmlType("TRANSACTION_RESPONSE")]
public class BankQueryResponse
{
[XmlElement("TRANSACTION_ID")]
public string TransactionId { get; set; }
[XmlElement("MERCHANT_ACC_NO")]
public string MerchantAccNo { get; set; }
[XmlElement("TXN_SIGNATURE")]
public string TxnSignature { get; set; }
[XmlElement("TRAN_DATE")]
public DateTime TranDate { get; set; }
[XmlElement("TXN_STATUS")]
public string TxnStatus { get; set; } …Run Code Online (Sandbox Code Playgroud) 如何使用C#将以下CatalogProduct标记解除扩展到我的CatalogProduct对象?
<?xml version="1.0" encoding="UTF-8"?>
<CatalogProducts>
<CatalogProduct Name="MyName1" Version="1.1.0"/>
<CatalogProduct Name="MyName2" Version="1.1.0"/>
</CatalogProducts>
Run Code Online (Sandbox Code Playgroud)
注意我没有CatalogProducts对象,所以想要在拉回到反序列化时跳过该元素
谢谢
如何让Student class可序列化?我正在读这篇文章,但如果我在下面的场景中实现它,我不知道什么是正确的方法.
public class Student
{
private string _studentNumber;
private string _lastName;
private string _firtName;
private List<Subject> _subjects;
public Student() { }
public string StudentNumber
{
get { return _studentNumber; }
set { _studentNumber = value; }
}
public string LastName
{
get { return _lastName; }
set { _lastName = value; }
}
public string FirstName
{
get { return _firtName; }
set { _firtName = value; }
}
public List<Subject> Subjects
{
get { return …Run Code Online (Sandbox Code Playgroud) 我有XML,我正在反序列化,这是我的XML
<?xml version=\"1.0\" encoding=\"utf-16\"?>
<UserInfo xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<UserName>First_User</UserName>
<Age>25</Age>
</UserInfo>
Run Code Online (Sandbox Code Playgroud)
我有这门课
namespace MyProject{
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http:/MyProject.ServiceContracts/2006/11", IsNullable = false)]
[DataContract]
public class UserInfo
{
private string username;
private string age;
[DataMember]
public string UserName
{
get
{
return this.username;
}
set
{
this.username = value;
}
}
[DataMember]
public string Age
{
get
{
return this.age;
}
set
{
this.age = value;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我这样做
XmlSerializer xmlSerSale = new XmlSerializer(typeof(UserInfo));
StringReader stringReader = new StringReader(myXML);
info = …Run Code Online (Sandbox Code Playgroud) 我有这个XML,只是想知道如何转换成C#类?
<?xml version="1.0" encoding="utf-8"?>
<TextScrollerItems xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Item type="text" ID="234">
<Text Color="Blue">
Sample text...
</Text>
</Item>
<Item type="image" ID="2456">
<Image>
clientLogo.png
</Image>
</Item>
</TextScrollerItems>
Run Code Online (Sandbox Code Playgroud) 我在外部提供了一个XML文档,我需要将其导入到我的应用程序中.该文件编写得很糟糕,但不是我真正能做的很多.
<?xml version="1.0" encoding="iso-8859-1"?>
<xml>
<Items>
<Property1 />
<Property2 />
...
</Items>
<Items>
<Property1 />
<Property2 />
...
</Items>
...
</xml>
Run Code Online (Sandbox Code Playgroud)
我应该如何使用XmlSerializer这个?我使用什么类设置似乎并不重要,或者我放在XmlRoot(ElementName="xml")我的基类上它总是说它<xml xmlns=''>是意外的.
编辑:添加了我正在使用的C#代码
[XmlRoot(ElementName = "xml")]
public class Container
{
public List<Items> Items { get; set; }
}
public class Items
{
public short S1 { get; set; }
public short S2 { get; set; }
public short S3 { get; set; }
public short S4 { get; set; }
public short S5 …Run Code Online (Sandbox Code Playgroud) 使用C#,有没有一种方法可以轻松解析XML文件,以便将其用作对象?
XML 示例:
<Config>
<Ui>
<Colour>black</Colour>
<Size>small</Size>
</Ui>
<Output>
<Mode>smb</Mode>
<Version>2</Version>
</Output>
</Config>
Run Code Online (Sandbox Code Playgroud)
然后参考我的应用程序中的参数
Config.Output.Mode
Run Code Online (Sandbox Code Playgroud)
我尝试过这种方法 - How to Deserialize XML document
但当我尝试时
var cfg = new Config();
cfg.Load(@"config.xml");
Console.WriteLine(cfg.Output.Mode);
Run Code Online (Sandbox Code Playgroud)
Visual Studio 指示 .Output.Mode 无效。
Config.Load 所在位置
Config.Output.Mode
Run Code Online (Sandbox Code Playgroud)