Управляемая C ++ веб-ссылка на проблемы службы WCF - PullRequest
0 голосов
/ 16 декабря 2008

Я развернул простую службу WCF с именем CLSAPIService, так как ее контракт содержит метод с именем 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;
}

Затем я создал простой проект тестирования в Managed C ++ в Visual .Net 2005 и создал веб-ссылку для службы:

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, хотя я присвоил ему значение.

В чем может быть проблема?

1 Ответ

1 голос
/ 23 декабря 2008

пожалуйста, добавьте Order к вашему члену данных. [DataMember (Name = "FirstName", IsRequired = true, Order = 2 )] и обратитесь к следующей статье: Изменить порядок членов данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...