创建WCF服务,返回MySqlCommand对象的唯一方法

时间:2016-01-14 16:40:44

标签: c# web-services wcf

我在visual studio 2015上创建了一个WCF服务,其中一个方法返回一个MySqlCommand。当我尝试在另一个服务上添加服务的引用时,我收到一个错误:

  

下载“http://localhost:54740/GetCommand.svc/ $元数据”时出错。   请求失败,HTTP状态为400:错误请求。   元数据包含无法解析的引用:“http://localhost:54740/GetCommand.svc”。   内容类型application / soap + xml;服务不支持charset = utf-8。客户端和服务绑定可能不匹配。   远程服务器返回错误:(415)无法处理消息,因为内容类型为'application / soap + xml; charset = utf-8'不是预期的类型'text / xml;字符集= UTF-8' ..   如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

我搜索了很多,我找不到解决方案,服务代码如下:

 public class GetCommand : IGetCommand
{
    public MySqlCommand getCmd(string q, MySqlConnection con)
    {
        return new MySqlCommand(q, con);
    }
}

,合同代码是:

[ServiceContract]
public interface IGetSqlConnection
{
    [OperationContract]
    MySqlConnection getConnection(string query);
}

当我按下发现按钮时找到该服务,但我无法将其添加为参考。该解决方案的所有其他服务都在运作。

1 个答案:

答案 0 :(得分:1)

MySqlCommand是客户端的未知类型,您应该引用包含其定义的程序集。 无论如何你正在做的事情没什么意义。一旦您的客户获得MySqlCommand的实例,它如何使用它?客户端通常在另一台机器上,而且命令与它有连接(也许是一个事务)。 另外,我不认为类型MySqlCommand是可序列化的。