在 WCF 中访问 Silverlight 时,您将获得使用 ObservableCollection 生成的代理。
当你进行数据绑定(bind)时这很好,但当你只是调用一个方法时就有点笨拙了。例如下面的服务方法:
[OperationContract]
public SearchOrdersMsgOut SearchOrders(ShippingStatusType[] shippingStatuses,
string[] orderId)
{
}
使用ObservableCollection
生成。什么!它们只是参数。我为什么要“观察”它们?
如果我必须这样做,我就很好 - 但当我知道我从不进行数据绑定(bind)时,似乎应该有一种方法来强制使用简单的数组结构 - 特别是在输入消息上。
我更愿意这样做:
searchCriteria.PaymentStatus = new [] { PaymentStatusType.PaymentFailed, PaymentStatusType.Unpaid };
比这个:
searchCriteria.PaymentStatus = new ObservableCollection<PaymentStatusType> { PaymentStatusType.PaymentFailed, PaymentStatusType.Unpaid };
有办法吗?
PS。我实际上使用 SearchCriteria 对象作为我的搜索条件 - 但我对此示例进行了简化,想知道参数是否以不同的方式处理。最佳答案
您可以在整个服务范围内执行此操作,但不能针对每个方法执行此操作。在“添加服务引用”对话框中,单击“高级”,然后选择“System.Array”作为集合类型。但我不知道有什么方法可以逐个方法执行此操作,即对某些方法使用数组,对其他方法使用 ObservableCollection。
关于wcf - 我*必须*在 Silverlight WCF 客户端中使用 ObservableCollection 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911441/