简体   繁体   English

将 XML 数据作为 class object 传递

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM