
最近研究Silverlight的反射技术,找了很多的资料,很多都不适用,终于在本人的不懈努力下,弄出了一点成果,与大家分享一下。
Silverlight实现反射的方法很简单,使用IO流 + 反射,可以轻松的将dll解析,下面是我自己写的一点代码:
1.添加引用using System.Reflection; using System.IO;
2.实现:
string assemblyname = @"E:\Work\Test\LogInfoTest\ZKR.Silverlight.Core\Bin\DeBUG\ZKR.Silverlight.Core.dll"; //文件路径 fileStream fs = new fileStream(assemblyname,fileMode.Open,fileAccess.Read); //将文件转化为Stream AssemblyPart part = new AssemblyPart(); //实例化AssemblyPart对象 Assembly assembly = part.Load(fs); //加载文件的Stream fs.Close(); //关闭Stream Type[] ts = assembly.GetExportedTypes(); //获取文件的基本信息 foreach (Type item in ts) { string nameSpace = item.namespace; //命名空间 string name = item.name; //类名 MemberInfo[] mi = item.getmethods(); //获取全部的信息 foreach (MemberInfo MiItem in mi) { string s = MiItem.name; switch (MiItem.MemberType) { case MemberTypes.Event: //事件 break; case MemberTypes.FIEld: //字段 break; case MemberTypes.Method: //方法 break; case MemberTypes.Property: //属性 break; default: break; } } } 这样的方法似乎可以解析任意的dll,但是实际上是不是这样,还不是很确定,如果大家有什么新的发现,希望能分享一下!
总结以上是内存溢出为你收集整理的Silverlight中的反射全部内容,希望文章能够帮你解决Silverlight中的反射所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)