わかりました...最後に私はあきらめました、私はちょうどstd:listの代わりに配列としてデータを送りました...
1.- svcutil / t:metadataを使用してサービスからメタデータを取得します(注:サービスが実行されている必要があります)。2.-プロキシwsutil*.wsdl * .xsdを作成します。3.-プロキシファイル(.hおよび.c)をクライアントに追加し、プロキシ機能をサービスに使用します。
ただし、cプログラミングに慣れていない場合は、配列は少し注意が必要です...
DataContract:
[DataContract]
public class CompositeType
{
CompositeType2[] ctListValue;
bool boolValue;
string stringValue;
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
[DataMember]
public CompositeType2[] CtListValue
{
get { return ctListValue; }
set { ctListValue = value; }
}
}
[DataContract]
public class CompositeType2
{
bool boolValue;
string stringValue;
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
配列の呼び出しのクライアント側:
// *** COMPOSITETYPE CALL
CompositeType * co = new CompositeType();
co->BoolValue = true;
co->StringValue = L"Im co";
CompositeType2 co0;
co0.BoolValue = true;
co0.StringValue = L"Im co0";
CompositeType2 co1;
co1.BoolValue = true;
co1.StringValue = L"Im co1";
CompositeType2 co2;
co2.BoolValue = true;
co2.StringValue = L"Im co2";
CompositeType2 ** comType2; // <-- this is my CompositeType2[] I will send to the service
comType2 = new CompositeType2*[3];
comType2[0] = &co0;
comType2[1] = &co1;
comType2[2] = &co2;
co->CtListValue = comType2;
co->CtListValueCount = 3;
CompositeType* result2;
BasicHttpBinding_IHelloWorldService_SayHelloCompType(
proxy, co, &result2,
heap, NULL, 0, NULL, error);
お役に立てれば...