我有一个类型:
[<DataContract>]
type Item(id : string, name : string) =
[<DataMember>]
member val ItemId = id with get, set
[<DataMember>]
member val ItemName = name with get, set
new() = new Item("", "")
服务合同:
[<ServiceContract>]
type ISimpleService =
[<OperationContract>]
abstract InsertItem: b:Item -> unit
服务:
type SimpleService() =
interface ISimpleService with
member x.InsertItem item =
let sql = new SqlConnector()
sql.InsertItem(item)
()
在客户端,我可以创建Item并将其传递给服务:
let newItem = new webService.ServiceTypes.Entities.Item()
newItem.ItemId <- "10"
newItem.ItemName <- "ten"
client.InsertItem(newItem)
但是我没有带两个参数的构造函数,所以我不能做这样的事情:
let newItem = new webService.ServiceTypes.Entities.Item("10", "one")
为什么以及如何解决?
答案 0 :(得分:1)
在WCF中,您通过序列化(从您的wsdl蓝图)传输数据 - 您没有传递对象引用。如果你想在客户端有构造函数,你总是可以创建一个从服务扩展代理类的类。