将Silverlight类库引用到MVC应用程序

时间:2015-03-02 04:40:07

标签: c# .net asp.net-mvc wpf silverlight

我有一个现有的Silverlight应用程序。我在其中一个XAML.cs文件中有一个复杂的方法,我试图重新使用它。 我想从MVC应用程序中调用该方法。我尝试通过引用silverlight类库到我的mvc应用程序来检查它是否可行但最终得到异常(在xaml.cs类中声明了一些UI元素),同时实例化该类的对象。任何人都可以告诉我如何以更好的方式做到这一点。我正在考虑通过服务公开这些方法,但是我想知道更好的可能性。

2 个答案:

答案 0 :(得分:0)

Xaml文件(包括它们的cs代码隐藏)理想情况下应该只有用于处理用户界面的代码。这是为什么将UI与其他逻辑混合会导致痛苦的一个很好的例子。

如果xaml.cs中的方法足够有用,可以从外部MVC应用程序中调用,我会说它不应该在代码隐藏中:它需要存在于其他地方并被代码调用 - 背后。然后它也可以由MVC应用程序调用。

TL;博士

1)将有问题的方法提取到一个单独的实用程序类

2)从你背后的代码中调用该类方法

3)从MVC应用程序中调用该类方法

答案 1 :(得分:0)

您无法在ASP.NET MVC应用程序中重用XAML代码。

Bat你可以从Silverlight应用程序中提取服务器端逻辑代码并在ASP.NET MVC上重用它。如果您的Silverlight代码设计得很好,那么它不应该是一个复杂的问题。

在这种情况下,您必须仅重新实现客户端功能 - 将C#\ XAML替换为HTML \ JS \ CSS。

此外,您还可以使用Portable Class Library在Silverlight和ASP.NET MVC应用程序中使用提取的代码。查看下一篇文章如何使用它: