[英]Passing XML data as a class object
I have a publish method which takes class object as input.我有一个发布方法,它将 class object 作为输入。 That class is created by converting XML into C# class. class 是通过将 XML 转换为 C# class 创建的。
Now, I am trying to test this publish menthod on my local machine but I do not have data as elements.现在,我试图在我的本地机器上测试这个发布方法,但我没有数据作为元素。 All I have is huge XML data.我所拥有的只是巨大的 XML 数据。 How do I pass this XML data to publish method as class object?如何传递此 XML 数据以将方法发布为 class object?
Please help.请帮忙。
Publish Method发布方法
public SwsDefaultOut HechPublish(createupdatePerson_Output createUpdatePersonOutput)
{
ThreadPool.QueueUserWorkItem(CallBackHechPublish, createUpdatePersonOutput);
long transactionId = -1;
if (createUpdatePersonOutput != null && !long.TryParse(createUpdatePersonOutput.HechPublishId, out transactionId))
transactionId = -1;
return new SwsDefaultOut { TransactionId = transactionId };
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.3190.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://xmlns.oracle.com/apps/mdm/customer")]
public partial class createupdatePerson_Output : object, System.ComponentModel.INotifyPropertyChanged {
private string hechPublishIdField;
private string error_spcCodeField;
private string error_spcMessageField;
private string externalSystemIdField;
private string object_spcIdField;
private SCC_CONSTITUENT_IN_SYNC_DS sCC_CONSTITUENT_IN_SYNC_DSField;
......
}
You can set up your HechPublish
method to accept a string
instead of the type you're looking to deserialize to.您可以将HechPublish
方法设置为接受string
而不是您要反序列化的类型。
For example例如
public SwsDefaultOut HechPublish(string createUpdatePersonOutputXml)
I think updating the HechPublish
method to something like you see below should work as long as the createUpdatePersonOutputXml
argument is valid Xml.我认为只要createUpdatePersonOutputXml
参数是有效的 Xml,就可以将HechPublish
方法更新为如下所示的内容。
public SwsDefaultOut HechPublish(string createUpdatePersonOutputXml)
{
var serializer = new XmlSerializer(typeof(createupdatePerson_Output));
createupdatePerson_Output createUpdatePersonOutput;
using (TextReader reader = new StringReader(createUpdatePersonOutputXml))
{
createUpdatePersonOutput = (createupdatePerson_Output)serializer.Deserialize(reader);
}
ThreadPool.QueueUserWorkItem(CallBackHechPublish, createUpdatePersonOutput);
long transactionId = -1;
if (createUpdatePersonOutput != null && !long.TryParse(createUpdatePersonOutput.HechPublishId, out transactionId))
transactionId = -1;
return new SwsDefaultOut { TransactionId = transactionId };
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.