在silverlight项目开发中有些地方需要用到反射机制,反射方式如下:
public void SetobjectCache(string _key) { WebClient client = new WebClient(); //准备获取dll文件的信息 client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); client.OpenReadAsync(new Uri("http://www.rongrong.com/Potentpal_Objects.dll",UriKind.Absolute)); } void client_OpenReadCompleted(object sender,OpenReadCompletedEventArgs e) { AssemblyPart part = new AssemblyPart(); //获取加载的dll信息 Assembly assembly = part.Load(e.Result); //构造该对象的实例 Object editor = assembly.CreateInstance("Potentpal_Objects.NPC_1") as Object; NpcCache.SetobjectCache("NPC_1",editor); }
但是IIS默认状态下是不容许DLL文件被下载的,微软认为这是一种漏洞。虽然通过一些方式可以解决这个问题但是会给整个网站带来安全隐患。所以这里建议方式为
public void SetobjectCache(string _key) { WebClient client = new WebClient(); //准备获取dll文件的信息 client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); client.OpenReadAsync(new Uri("http://www.rongrong.com/Potentpal_Objects.rar",editor); }
将要下载的DLL文件的后缀名改为RAR或者DOC等任意可下载的文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。