Click here to Skip to main content
15,886,963 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
CalculateDetails1() is declared with a parameter 'CuboidInfoRequest' of Type Message Contract which contains a DataContractObject named Dimension as type CuboidDimension as its only property.

Why is CalculateDetails1 invoked and the client proxy generated with parameterized properties of the CuboidInfoRequest instead of the message contract object itself. And can't it return another MessageContract type again composed of another datacontract ?




I've run a few project scenarios and if I pass the parameters ( elements of the MessageContract as the method signature defines its fine ) but it was declared with a object (MessageContract) as the parameter type not its properties.... where are these out parameters and ref parameters coming from

What I have tried:

Generated Client Proxy :: public int RequestResponsePersonaCreate(int RequestId, MsgCtrtCLIENT.servREF.Persona PersonaObj, out MsgCtrtCLIENT.servREF.Persona PersonaObjResp) {
MsgCtrtCLIENT.servREF.MsgRequest inValue = new MsgCtrtCLIENT.servREF.MsgRequest();
inValue.RequestId = RequestId;
inValue.PersonaObj = PersonaObj;
MsgCtrtCLIENT.servREF.MsgResponse retVal = ((MsgCtrtCLIENT.servREF.ImsgCtrctServ)(this)).RequestResponsePersonaCreate(inValue);
PersonaObjResp = retVal.PersonaObjResp;
return retVal.ID;
}


//**************
public class msgCtrctServ : ImsgCtrctServ

public MsgResponse RequestResponsePersonaCreate(MsgRequest msgReq)
{
MsgResponse msgRsp = new MsgResponse();

msgRsp.ID = 500;
msgRsp.PersonaObjResp =
new Persona
{
Category = "Dumpling",
Id = 88,
Name = "Pookie",
Toys = new List<toy>(),
Title = "Test"
};


return msgRsp;
}

//**************

[ServiceContract]
public interface ImsgCtrctServ
{
[OperationContract]
MsgResponse RequestResponsePersonaCreate(MsgRequest msgReq);

[MessageContract(IsWrapped = true)]
public class MsgResponse
{

private string responseString;
private Persona _persona = new Persona();

[MessageHeader]
public int ID { get; set; }

public bool Success { get; set; }


[MessageBodyMember]
public Persona PersonaObjResp
{
get { return _persona; }
set { _persona = value; }
}

public string ResponseString
{
get { return responseString; }
set { responseString = value; }
}




//**************



[MessageContract(IsWrapped = true)]
public class MsgRequest
{
[MessageHeader]
public int RequestId { get; set; }

[MessageBodyMember]


//**************


public class Persona
{

public string Name { get; set; }
public int Id { get; set; }
public string Title { get; set; }
public string Category { get; set; }
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900