访问Web服务属性

时间:2014-12-18 10:11:57

标签: c# .net web-services reference

我正在使用网络服务构建一个应用程序,以便从我们的核心会计系统向提供商发送和接收消息。

我已经为我的项目添加了一个Web服务,我正在尝试构建一个Soap Body来将消息传入Web服务。

我所有的其他网络服务都运行良好,我只是在访问我需要填充的属性时才遇到问题。

对象浏览器视图中的所有属性都不可用于我的变量 wsSoapBody

以下是VS 2013对象浏览器中的Web服务: enter image description here

我已经在我的班级中声明了这样的网络服务:

using EvryCardManagement.ws.card.DCSSCardHolderRuleUpdate_V3_0;

我的课程声明如下:

namespace EvryCardManagement
{
    class DCSSCardHolderRuleUpdateType
    {

所以在我创建肥皂体的功能中,我有以下代码:

private DCSSCardHolderRuleUpdateType wsSoapBody(string message)
{
    /* Split message into an array */
    string[] aMessage = message.Replace("_", "").Split('\t');
    //CardHolderRuleUpdateType wsSoapBody = new CardHolderRuleUpdateType();

    DCSSCardHolderRuleUpdateType wsSoapBody = new DCSSCardHolderRuleUpdateType (); 

    /* Required and Mandatory fields */
    wsSoapBody.InstId = aMessage[(int) CardHolderRuleUpdateType.InstId].ToString();
    wsSoapBody.CardNo = aMessage[(int)CardHolderRuleUpdateType.CardNo].ToString();
    wsSoapBody.VersionNo = aMessage[(int)CardHolderRuleUpdateType.VersionNo].ToString();

    wsSoapBody.SMSNo = aMessage[(int)CardHolderRuleUpdateType.SMSNo].ToString();
    if (aMessage[(int)CardHolderRuleUpdateType.RemoveSMSRule].ToString() == "Y")
    {
        wsSoapBody.SMSNo = " ";
    }
    else
    {
        for (int iRule = 13; iRule <= 29; iRule+=2)
        {
            int isRule = 0;
            if (aMessage[iRule] != "") isRule = Convert.ToInt16(aMessage[iRule]);
            if (isRule == 1)
            {
                switch (iRule)
                {
                    case 13:
                        wsSoapBody.region1 = "1";
                        break;
                    case 15:
                        wsSoapBody.region2 = "2";

                    ... cut for brevity

所以我应该能够通过以下变量声明引用CardHolderRuleUpdateType中的所有属性:

CardHolderRuleUpdateType wsSoapBody = new CardHolderRuleUpdateType();

我也尝试过:

DCSSCardHolderRuleUpdateType.CardHolderRuleUpdateType wsSoapBody = 
             new DCSSCardHolderRuleUpdateType.CardHolderRuleUpdateType();

现在,当我使用CardHolderRuleUpdateType wsSoapBody = new CardHolderRuleUpdateType();时,我发现我可以这样做:

enter image description here

因此属性肯定存在,我可以访问它们,但我不知道如何。

我做错了什么?

0 个答案:

没有答案