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