如果我想在公共程序集中定义一个类,以供Silverlight应用程序和asp.net Web应用程序或其他类型的应用程序使用,我可以在标准类库中定义数据类型,还是应该我使用silverlight类库?
答案 0 :(得分:1)
您无法从Silverlight应用程序引用标准.NET库。理论上,您可以在ASP.NET应用程序中引用Silverlight库,但是我在使用UI类型的程序集时遇到了问题。
我建议只设置一个定义服务合同中数据类型的Web服务。当ASP.NET和Silverlight应用程序都添加服务引用时,将为您重用/自动生成类型。它更简单,更好地支持,它允许您更改一段代码而不是两段。
答案 1 :(得分:1)
看看RIA Services,它是为解决这类问题而编写的。它允许您定义和注释(例如,添加验证要求)到服务器端代码,并自动在Silverlight类中构建一个代理类,可以与服务器端代码进行通信。
它可以使用普通的CLR对象以及LINQ to SQL和Entity Framework模型。
答案 2 :(得分:1)
Silverlight应用程序只能使用Silverlight程序集。 主要原因是确保可以解决所有引用。
您要问的一个选项是在标准类库中定义类型,以便可以在ASP.NET中使用它并将这些文件“链接”到Silverlight类库。 链接工作正常,但您可能会发现自己不得不做大量的手工工作 确保一切都是同步的。 链接的优点是您可以共享逻辑,只要您不使用 Silverlight CLR无法处理的任何事情。
RIA服务也是一种选择,如果你不介意它仍然是CTP。 :-) 它正在快速发展,质量对于CTP来说非常好。 有一个学习曲线,你必须适应它的工作方式。