【问题标题】:WCF: Best practice to send Form Data to a Web Service?WCF:将表单数据发送到 Web 服务的最佳实践?
【发布时间】:2008-11-27 20:27:10
【问题描述】:

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

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

我有大约 15 个字段需要遍历。一名团队成员希望将所有内容作为我认为不是最佳的参数传递。我们尝试在 Object[] 数组中发送所有内容,但收到一个奇怪的错误“Type 'System.DBNull' with data contract name 'DBNull:http...' is not expected. Add any types not known statically to the list已知类型”,

欢迎提出任何建议。

【问题讨论】:

    标签: c# wcf forms


    【解决方案1】:

    我们使用 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 服务,并有一个从我们的服务类继承的类(此示例中未显示),因此我们让 Visual Studio 完成所有工作设置升级 WCF 服务,因为我们通过易于使用和维护的 Web 服务获得好处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 2010-09-19
      相关资源
      最近更新 更多