Как вызвать WCF operationcontract с помощью messagecontract ?
CalculateDetails1 () объявляется с параметром 'CuboidInfoRequest' типа Message Contract, который содержит DataContractObject с именем Dimension как тип CuboidDimension в качестве своего единственного свойства.
Почему вызывается CalculateDetails1 и генерируется клиентский прокси-сервер с параметризованными свойствами CuboidInfoRequest вместо самого объекта контракта сообщения. И не может ли он снова вернуть другой тип MessageContract, состоящий из другого datacontract ?
Я запустил несколько сценариев проекта, и если я передаю параметры ( элементы MessageContract как сигнатура метода определяет его штраф), но он был объявлен с объектом (MessageContract) в качестве типа параметра, а не его свойств.... откуда берутся эти параметры out и ref
Что я уже пробовал:
Созданного клиента доверенности :: общественная int RequestResponsePersonaCreate(инт ордера, MsgCtrtCLIENT.servREF.Персона PersonaObj, из MsgCtrtCLIENT.servREF.Персона PersonaObjResp) {
MsgCtrtCLIENT.servREF. MsgRequest inValue = new MsgCtrtCLIENT.servREF.MsgRequest();
инвалид.Ордера = Ид_запроса;
инвалид.PersonaObj = PersonaObj;
MsgCtrtCLIENT.servREF.MsgResponse код = ((MsgCtrtCLIENT.servREF.ImsgCtrctServ) (this)). RequestResponsePersonaCreate(inValue);
PersonaObjResp = код.PersonaObjResp;
вернуть код.Идентификатор;
}
//**************
публичный класс msgCtrctServ : ImsgCtrctServ
public MsgResponse RequestResponsePersonaCreate(MsgRequest msgReq)
{
MsgResponse msgRsp = новый MsgResponse();
msgRsp.ID = 500;
msgRsp.PersonaObjResp =
Новая персона
{
Категория = " Клецки",
Id = 88,
Имя = " Пуки",
Toys = новый список & lt;toy>(),
Title = " Тест"
};
возврат msgRsp;
}
//**************
[ServiceContract]
открытый интерфейс ImsgCtrctServ
{
[OperationContract]
MsgResponse RequestResponsePersonaCreate(MsgRequest msgReq);
[MessageContract(IsWrapped = true)]
публичный класс MsgResponse
{
частная строка responseString;
собственной персоной _persona = Новая персона();
[Свойство messageheader]
public int ID { get; set; }
public bool Success { get; set; }
[MessageBodyMember]
публичная персона PersonaObjResp
{
get { return _persona; }
set { _persona = значение; }
}
публичная строка ResponseString
{
get { return responseString; }
set { responseString = значение; }
}
//**************
[MessageContract(IsWrapped = true)]
публичный класс MsgRequest
{
[Свойство messageheader]
ордера общественная int { получить; набор; }
[MessageBodyMember]
//**************
персона публичного класса
{
public string Name { get; set; }
public int Id { get; set; }
public string Title { get; set; }
public string Category { get; set; }