我对MessageContract Attribute在WCF中的工作原理感到困惑.
当我放置MessageContract时,代理显示两个参数而不是1.例如
GetResultResponse GetOperation(GetResultRequest request)
[MessageContract]
public class GetResultRequest
{
[MessageHeader]
public Header Header { get; set; }
[MessageBodyMember]
public List<Person> PersonList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
代理生成此方法签名:
GetOperation(ref Header, List<Person> personList)
Run Code Online (Sandbox Code Playgroud)
当我删除MEssageContract属性时:代理生成正确的签名:
GetOperation(GetResultRequest request)
Run Code Online (Sandbox Code Playgroud)
有人可以确认这是否是预期的行为?