【问题标题】:ServiceReference not found when return a DataContract from a OperationContract?从 OperationContract 返回 DataContract 时找不到 ServiceReference?
【发布时间】:2015-10-15 18:46:18
【问题描述】:

这是一个简单的类,我在同一个解决方案的 silverlight 项目中引用了它。如果操作方法返回一个整数,它工作正常,但如果我让它返回一个 DataContract,它只是说服务引用找不到

在网络项目中

  public class UserResult
  {
....
  }
  [ServiceContract(Namespace = "")]
  [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  public class ServiceUser
  {
       [OperationContract]
     public UserResult UserSignIn(string userid, string password)
     {
      ...
     } /// doesn't work

    public int UserSignIn(string userid, string password)
    {
   ...
    } // works

在 SilverLight 中

  ServiceReferenceUser.ServiceUserClient srUser = 
      new ServiceReferenceUser.ServiceUserClient();

【问题讨论】:

  • 究竟是什么不起作用(“说服务引用找不到”是什么意思)?您能否发布完整的错误,无论是在“添加服务引用”对话框中(完整消息)还是在运行时(完整的异常消息,包括堆栈跟踪)?
  • 错误是“找不到类型或命名空间'ServiceReferenceUser'”
  • 嗯,命名空间ServiceReferenceUser 不存在,所以你不能使用它。尝试打开文件Reference.cs(如果在VS项目中选择“显示所有文件”选项可以看到),并查看该类是在哪个命名空间下创建的。

标签: wcf silverlight


【解决方案1】:

也许 UserResult 类引用了其他一些 DataContract。如果是这样,则需要将该 DataContract 指定为已知类型。

【讨论】:

    猜你喜欢
    • 2018-06-10
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多