【发布时间】:2015-03-05 09:56:01
【问题描述】:
尝试在 C# 中解析 XML 字符串,在 SessionId 中我得到空值。在传递值时,一切都正确无误,每次只有会话 ID 为空。其他所有领域都即将到来并被很好地解析。我刚刚得到了带有会话 id 部分的空值。我也尝试用 JSON 来做到这一点,但它没有完成。最后 data.SessionId 为空。
namespace EmailToActivityCreator
{
[DataContract]
public class EmailInfo
{
[DataMember]
public string Body { get; set; }
[DataMember]
public string CCMail { get; set; }
[DataMember]
public string EmailState { get; set; }
[DataMember]
public string FromEmail { get; set; }
[DataMember]
public string ToEmail { get; set; }
[DataMember]
public string Subject { get; set; }
[DataMember]
public string SessionId { get; set; }
}
class Program
{
static void Main(string[] args)
{
String arguments = args[0];
//Console.Error.Write(arguments);
var bytes = Encoding.UTF8.GetBytes(arguments);
EmailInfo data;
using (var stream = new MemoryStream(bytes))
{
DataContractSerializer serializer = new DataContractSerializer(typeof(EmailInfo));
data = (EmailInfo)serializer.ReadObject(stream);
}
我们传递的值是这样的
"<EmailInfo xmlns=\"http://schemas.datacontract.org/2004/07/ABC\">
<Body><div dir="ltr">body
</div>
</Body>
<CCMail></CCMail>
<EmailState>Received</EmailState>
<FromEmail>Ravi Ranjan <ravi.ranjan@xyz.com></FromEmail>
<Subject>subject</Subject>
<ToEmail> <ravi@eras.in></ToEmail>
<SessionId>sss</SessionId>
</EmailInfo>"
【问题讨论】:
-
你的班级有 SessionId 属性吗?
-
您的课程缺少适当的属性...我没有看到任何
SessionId。 -
是的,我知道这里的书面代码,我写了测试。但在我的课堂上我有
-
没有。我在我的代码中有。反正我编辑了。我正在使用其他变量名称并对其进行试验。 bt 它不工作。
-
@Arunster 你有什么想法吗??
标签: c# xml c#-4.0 datacontractserializer xml-deserialization