WCF:将表单数据发送到Web服务的最佳实践?

时间:2008-11-27 20:27:10

标签: c# wcf forms

我们正在使用C#,ASP.NET& WCF。我正在尝试将表单数据发送到Web服务,而Web服务又使用表单中的数据插入/更新数据库。我该如何发送我的数据?

我们填写的表单很好,但是在将更新发送回Web服务时遇到了一些问题。我们已经确定在这种情况下使用数据集并不是一个很好的做法,它很慢,我们必须根据自己的喜好做太多的SELECT *。

我有大约15个需要经过的领域。一个团队成员希望将所有内容作为我认为不是最佳的参数传递。我们尝试在Object []数组中发送所有内容,但是收到一个奇怪的错误“类型'System.DBNull',数据协定名称'DBNull:http ...'不是预期的。将任何静态未知的类型添加到列表中已知类型“,

欢迎任何建议。

1 个答案:

答案 0 :(得分:2)

我们使用WCF使用属性定义数据合约和数据方法。

基本上我们创建一个程序集来定义所有类,另一个程序集来提供WCF连接位

OPur类程序集包含一个服务类和几个消息类。

我们为我们的服务定义一个接口,并使用相关的WCF标记进行标记。这是我们的服务合同。

[ServiceContract]
public interface IExampleWebService
{
    [OperationContract]
    CreateAccountResponse CreateAccount(int parameter, CreateAccountArguments another parameter);

    [OperationContract]
    DeleteAccountResponse DeleteAccount(int parameter);
}

我们在类中实现此接口,并创建各种数据协定(我们的响应和参数类)。

[DataContract]
public class CreateAccountResponse
{
    [DataMember]
    public bool CreatedOk { get; set; }

    [DataMember]
    public int AccountId { get; set; }
}

使用Web服务将这些类暴露给我们的表单(我们创建另一个程序集作为Web服务,并且有一个继承自我们的Service Class的类(在此示例中未显示),因此我们让Visual Studio完成所有工作设置我们通过易于使用和维护的Web服务获得优势,从而获得了WCF服务。