我正在使用网络服务构建一个应用程序,以便从我们的核心会计系统向提供商发送和接收消息。
我已经为我的项目添加了一个Web服务,我正在尝试构建一个Soap Body来将消息传入Web服务。
我所有的其他网络服务都运行良好,我只是在访问我需要填充的属性时才遇到问题。
对象浏览器视图中的所有属性都不可用于我的变量 wsSoapBody
以下是VS 2013对象浏览器中的Web服务:
我已经在我的班级中声明了这样的网络服务:
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();
时,我发现我可以这样做:
因此属性肯定存在,我可以访问它们,但我不知道如何。
我做错了什么?