【问题标题】:How to use same class library on WCF and Silverlight application如何在 WCF 和 Silverlight 应用程序上使用相同的类库
【发布时间】:2012-05-17 20:26:39
【问题描述】:

您好,我想从我的 Silverlight 应用程序和基于 WCF 的服务中使用相同的类库。我创建了一个 Silverlight C# 类库,发现 WCF 服务不允许添加对 Silverlight 项目类型的引用。所以

  • 我应该怎么做才能完成这项工作?

  • 如果 Silverlight 与 WCF 服务通信,Silverlight 是否可以调用 Silverlight 类库上的方法?

  • silverlight 总是这么难吗?

【问题讨论】:

    标签: c# wcf silverlight wcf-ria-services class-library


    【解决方案1】:
    【解决方案2】:

    尝试制作 2 个类库,一个用于 Silverlight,一个用于 WCF。两者都使用相同的 C# 源代码文件。在第二个项目中,您可以将文件添加为链接(在解决方案资源管理器中的 Visual Studio 中:添加现有项目,然后在下拉添加按钮中,选择“添加为链接”。

    这就是我们解决共享代码问题的方法。但是,您必须将自己限制在两个世界中都存在的库调用中。

    【讨论】:

    • 如果我将文件复制到两个项目(silverlight 类库、C# 类库)而不是添加链接有什么区别。顺便说一句,您也应该在这里查看我之前的问题stackoverflow.com/questions/10477345/… btw 我认为 WCF Ria 类库旨在解决这个问题。
    • 另外,从服务返回的List<Customers> 在转换为基于 SL 的类库对象时不会公开方法,我只能看到属性为什么会这样?
    【解决方案3】:

    现在很容易 :D - 只需使用 .shared 技巧。它允许您在服务器和客户端之间共享相同的代码。看这里:http://msdn.microsoft.com/en-us/library/ee707371(v=vs.91).aspx

    PS.:您甚至可以在 .shared 类上添加条件指令,如下所示:

    #if SILVERLIGHT
            MessageBox.Show("yay, I will run only on silverlight");
    #endif
    

    【讨论】:

      猜你喜欢
      • 2018-09-08
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多