如何让一个现有的程序集运行在Silverlight环境中

如何让一个现有的程序集运行在Silverlight环境中,第1张

概述故事是这样的:我们有一个组件,是一个标准的Class Library,里面有一些代码是实现了某些计算或者业务逻辑。例如下面这样 然后,我们做了一个Silverlight的应用程序,和一个用于运行该程序的网站 我们想让这个按钮,能调用DAL中Customer的PlaceOrder方法。这样的要求很自然不过了吧 我们马上会想到,要在SilverlightApplication中添加对DAL项目的引用。

故事是这样的:我们有一个组件,是一个标准的Class library,里面有一些代码是实现了某些计算或者业务逻辑。例如下面这样

然后,我们做了一个Silverlight的应用程序,和一个用于运行该程序的网站

我们想让这个按钮,能调用DAL中Customer的PlaceOrder方法。这样的要求很自然不过了吧

我们马上会想到,要在SilverlightApplication中添加对DAL项目的引用。

 

很不幸,我们居然会遇到一个错误

这个错误提示的意思是说,你只能引用Silverlight项目。

 

我们先来说一下如何解决这个问题吧,最后会解释具体的原因。

好吧,既然说只能引用Silverlight项目,那么我们就从善如流吧。接下来他们添加一个Silverlight的Class library

 

那么,我们要思考一个问题,既然我们在DAL中写好了那些代码,是否可以在这个项目中进行重用呢?

有的童鞋马上会说,把那些cs文件复制过来吧。嗯,脑筋动得还是挺快的,不过。。

下面要出绝招了。我们可以将DAL项目中的那些cs文件链接过来,这样就只要维护一份cs文件了,而不要复制多份。

请注意,这里选择“Add as link”

 

赶紧编译一下吧。然后,我们在Silverlight Application中添加对这个DAL的引用

 

然后编写按钮代码如下

using System;using System.Collections.Generic;using System.linq;using System.Net;using System.windows;using System.windows.Controls;using System.windows.documents;using System.windows.input;using System.windows.Media;using System.windows.Media.Animation;using System.windows.Shapes;using DAL;namespace SilverlightApplication{    public partial class MainPage : UserControl    {        public MainPage()        {            InitializeComponent();        }        private voID btTest_Click(object sender,RoutedEventArgs e)        {            var customer = new Customer();            MessageBox.Show(customer.PlaceOrder().ToString());        }    }}

 

看起来还不错,不是吗?

 

那么,这是为什么呢?这里的根本原因是Silverlight的运行时(CLR)其实是一个独立的版本,它与所有标准的.NET FRAMEWORK版本下面的CLR都不一样。它只能做一部分事情,而不是全部的事情。(上述的DAL是很简单的一个示例,如果涉及到一些复杂 *** 作,添加为link的方式不一定能编译通过)

当然,事实上说起来,真的有必要在Silverlight的程序里面嵌入什么很复杂的程序集吗?我想未必。

尤其是在企业或者商业应用开发的场景下,Silverlight大多是作为一个UI的载体而已,几乎所有的功能(例如与外界资源的交互)都是通过服务来实现的。这里的服务主要指的是WCF服务,当然也不限于此。

总结

以上是内存溢出为你收集整理的如何让一个现有的程序集运行在Silverlight环境中全部内容,希望文章能够帮你解决如何让一个现有的程序集运行在Silverlight环境中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1024037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存