c++ - 托管 C++ Web 引用 WCF 服务问题

标签 c++ wcf reference managed

我开发了一个名为 CLSAPIService 的简单 WCF 服务,它的合约包含一个名为 UpdateLastOpenCloseCall 的方法:

[OperationContract(Name = "UpdateLastOpenCloseCall", Action = "http://uniform.com/UpdateLastOpenCloseCall")]
CallResult UpdateLastOpenCloseCall(int iSwitchID, int iAgentID, string strExtension, BusinessDataField[] bdFields);

它的一个参数是一个简单的 DataContract:

[DataContract]
public struct BusinessDataField
{
    [DataMember]
    public string Name;
    [DataMember]
    public object Value;
}

然后我在 Visual .Net 2005 的托管 C++ 中创建了一个简单的测试项目,并为该服务创建了 Web 引用:

CLSAPIProxy::CLSAPIService^ service = gcnew CLSAPIProxy::CLSAPIService();
CLSAPIProxy::BusinessDataField ^f1 = gcnew CLSAPIProxy::BusinessDataField();
f1->Name = L"test_string";
f1->Value = L"string";

CLSAPIProxy::BusinessDataField ^f2 = gcnew CLSAPIProxy::BusinessDataField();
f2->Name = L"test_int";
f2->Value = 123;

System::Collections::Generic::List<CLSAPIProxy::BusinessDataField^> ^list = gcnew;
System::Collections::Generic::List<CLSAPIProxy::BusinessDataField^>();
list->Add(f1);
list->Add(f2);
service->UpdateLastOpenCloseCall(1,true,22817,true,L"24319",list->ToArray());

当 BusinessDataField 结构到达 WCF 方法时,似乎只有 Value 属性被更新,而 Name 属性为 null,即使我为它分配了一个值。

可能是什么问题?

最佳答案

请将 Order 添加到您的数据成员中。 [DataMember(Name = "FirstName", IsRequired = true, Order = 2)] 并引用以下文章: Change The Order Of data members

关于c++ - 托管 C++ Web 引用 WCF 服务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/371287/

相关文章:

c++ - 在 Objective-C++ 的 .h 文件中添加指向定义的 Objective-C 类的指针

c# - WCF HTTP 发布 : How to bind Json data to C# Model

visual-studio-2008 - 无法调试 WCF 服务消息

asp.net-mvc - 如何将 WCF 引用与 MVC3 (razor) 模型一起使用?

javascript - 为什么 'this'引用 'window'而不是类实例

c++ - const 引用变量初始化

c - 在 C 中什么时候应该使用双指针作为函数参数?

c++ - 模板和 STL 容器

c++ - 用变量初始化 vector ,C++

c++ - ReSharper C++ 中的配色方案困惑