开发者

Designing WCF interface: no out or ref parameters

I have a WCF service and web client. Web service implements one method SubmitOrders. This method 开发者_StackOverflow社区takes a collection of orders. The problem is that service must return an array of results for each order - true or false. Marking WCF paramters as out or ref makes no sense. What would you recommend?

[ServiceContact]
public bool SubmitOrders(OrdersInfo)

[DataContract]
public class OrdersInfo
{
  Order[] Orders;
}


Marking WCF paramters as out or ref makes no sense.

out parameters do make sense in WCF.

What would you recommend?

I recommend to use out parameters.


Note 1: It will move your out parameter to be the first parameter on you.

Note 2: Yes you can return objects with complex types in WCF. Tag your class with an attribute of [DataContract] and your properties with an attribute of [DataMember].


Use complex type(another class with DataContract attribute) in return.

Like

[ServiceContact]
public OrdersResult SubmitOrders(OrdersInfo)

[DataContract]
public class OrdersInfo
{
  Order[] Orders;
}

[DataContract]
public class OrdersResult
{
  .....
}

Also add DataMember on Order[] Orders;


Well, if you want to avoid out and ref parameters, you could always return an array of the IDs of the orders that were successfully submitted.


Yes, it makes sense returning an out parameter on WCF operations. On response, the SOAP message will contain the element passed back.

There are good content on MSDN about data transfer: Specifying Data Transfer in Service Contracts

Also, you need to use the OperationContractAttribute (not ServiceContractAttribute) on the SubmitOrders.


Special class that holds the order and the true/false, or an array of tupels.


The method would look like:

public OrdersInfo SubmitOrders(OrderInfo orders){
}

where each item in the OrderInfo will have a SubmissionStatusInfo like:

class SubmissionStatusInfo{
 enum Status  { get; set; }
 string Message { get; set; }
}

where Status : Submitted, Failed, Error etc.
Message : a string giving some additional information about the status...

HTH

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜