reflection相关内容
我想进行测试,如果对象是一个泛型类型。我已经尝试了以下没有成功: 公共BOOL测试() { 名单< INT>名单=新的名单,其中,INT>(); 返回list.GetType()== typeof运算(名单<>); } 我是什么做错了,我如何执行该测试? 解决方案 如果您要检查它是否是一个泛型类型的实例: 返回list.GetType(
..
但这里有一个例子: 暗淡desiredType的类型 如果则IsNumeric(desiredType),然后... 编辑:我只知道是什么类型,不是值作为一个字符串 好了,遗憾的是我通过输入code具有循环。 但是,这是一个很好的方式做到这一点: IF((desiredType.IsArray)) 返回0; 开关(Type.GetType code(desi
..
我试图扫描组件类型使用code类似这样实现一个特定的接口: 公开名单<类型> FindTypesImplementing< T>(字符串assemblyPath) { VAR matchingTypes =新的名单,其中,类型和GT;(); VAR ASM = Assembly.LoadFrom(assemblyPath); 的foreach(在asm.GetTypes变种
..
我想一个字符串转换为一个对象的属性值,他的名字我有一个字符串。我试图做到这一点,像这样: 字符串modelProperty =“一些属性名称”; 字符串值=“someValue中”; VAR属性= entity.GetType()的getProperty(modelProperty)。 如果(属性!= NULL){ property.SetValue(实体, Conver
..
我可以通过反射设置了私有财产? 公共抽象类实体 { 私人诠释_id; 私营的DateTime? _创建于; 公众实际的t标识 { {返回_id; } 私人集合{ChangePropertyAndNotify(REF _id,价值,X => ID); } } 公共虚拟日期时间?创建于 {
..
我有型, T ,我想获得具有属性的公共属性列表 MyAttribute 。该属性标记的AllowMultiple = FALSE ,像这样的: [AttributeUsage(AttributeTargets.Property,的AllowMultiple = FALSE)] 目前我有什么是这样的,但我想有一个更好的方法: 的foreach(的PropertyInfo道具在t.Get
..
可能重复: 如果你想在对象类型开关,什么是做到这一点的最好方法是什么? code段 私人诠释GetNodeType(NodeDTO节点) { 开关(node.GetType()) { 案件的typeof(CasusNodeDTO): 返回1; 案件的typeof(BucketNodeDTO):
..
如果我有以下的code: 的MyType< INT> anInstance =新的MyType<诠释>(); 类型类型= anInstance.GetType(); 我如何可以找出哪些类型参数(S)“anInstance”被实例化,通过查看类型变量?可能吗 ? 解决方案 使用 使用系统; 使用System.Collections.Generic; 公共类测
..
可能显示的文件 对不起。如何获得命名空间内的所有类? 解决方案 您需要做的是“倒退”;列出的组件,然后检查每个类型的命名空间的所有类型: 使用的System.Reflection; 私有类型[] GetTypesInNamespace(议会会议,串命名空间) { 返回assembly.GetTypes()式(T => String.Equals(t.Namespace,命
..
假设以下类型定义: 公共接口IFoo的< T> :伊巴尔< T> {} 公共类Foo< T> :IFoo的< T> {} 如何才能知道是否该类型富实现了通用接口伊巴尔< T> 只有当错位类型可用? 解决方案 通过使用答案从第三文化孩子也可以用下面的LINQ查询完成的: 布尔isBar = foo.GetType()GetIn
..
我想检索的MethodInfo对于在可枚举类型的方法: typeof运算(可枚举).GetMethod(“去哪儿”,新类型[] { 的typeof(IEnumerable的&其中;&1+), typeof运算(Func键<,>) }) 但得到空。我究竟做错了什么? 解决方案 这previous答案适用于某些情况下,但是: 在它不处理嵌套的泛型类
..
有一些神奇与WCF反序列化回事。它是如何实例化数据契约类型的实例,而无需调用构造函数? 例如,考虑这个数据契约: [DataContract] 公共密封类CreateMe { [数据成员]私人只读字符串_name; [数据成员]私人只读INT _age; 私人只读布尔_wasConstructorCalled; 公共CreateMe() { _wa
..
鉴于这一类 类Foo { //想找到_bar与反思 [SomeAttribute] 私人字符串_bar; 公共字符串BigBar { {返回this._bar; } } } 我想找到私人物品_bar,我将与属性标记。那可能吗? 我已经和我在那里找了一个属性的属性做到了这一点,但从来没有一个私有成员域。 什么是我需
..
有一组在我的课私有方法,我需要的一个电话动态的基础上的输入值。二者调用code和目标方法是在相同的实例。在code是这样的: MethodInfo的dynMethod = this.GetType()GetMethod的(“Draw_”+ ITEMTYPE)。 dynMethod.Invoke(这一点,新的对象[] {methodParams}); 在这种情况下, GetMetho
..
我要加载到一个新的AppDomain一些组件,它有一个复杂的引用树(MYDLL.DLL - > Microsoft.Office.Interop.Excel.dll - > Microsoft.Vbe.Interop.dll - > Office.dll - > stdole.dll) 据我了解,当一个程序集被加载到AppDomain中,它的引用将不会自动加载,我要手动加载它们。 所以,当我做的
..
就像标题所说:能反射给你当前正在执行的方法的名称 我倾向于,猜测是因为海森堡不是问题的。你如何调用一个方法,将告诉你不改变当前的方法是当前的方法?但我希望有人能证明我错了。 更新: 第2部分:难道这是用来往里code的属性呢? 第3部分:?什么表现像 最终结果 我了解MethodBase.GetCurrentMethod()。我还了解到,不仅我可以创建一个堆栈跟踪,我只能创建我需要的,如
..
我有课。 公共类Foo 私人_Name作为字符串 公共属性Name()作为字符串 得到 返回_Name 最终获取 设置(BYVAL值作为字符串) _Name =价值 结束设定 高端物业 私人_Age作为字符串 公共财产年龄()作为字符串
..
1未必总是知道一个对象在编译时的类型,但可能需要创建类型的一个实例。你如何从一个类型得到一个新的对象实例? 解决方案 在激活中的类根系统命名空间是pretty的强大。 有很多重载的传递参数的构造函数和这样的。退房文档: 下面是一些简单的例子: 对象类型的实例=(对象类型)Activator.CreateInstance(的objectType); 对象类型的实例=(对象类型)A
..
如何在C#中获取的所有类在命名空间通过反射? 解决方案类 随着code打印在指定的命名空间名称在当前汇编中定义。 正如其他人所指出的,一个命名空间可以分散在不同的模块之间,所以你需要获得组件列表第一位。 字符串@namespace =“...”; 变种Q =从Assembly.GetExecutingAssembly T()。GetTypes() 其中,t.IsClass
..
我经常听到多么糟糕的思考是使用。虽然我一般避免反光,很少发现情况就不可能解决我的问题,没有它,我不知道...... 对于那些谁在应用中使用的反射,让你测量的性能命中和,是不是真的那么差? 解决方案 有。但是,这取决于你正在努力做的事情。 我用反射动态加载程序集(插件),其性能“惩罚”是没有问题的,因为操作一些应用程序的启动过程中我做的。 不过,如果你在里面反映了一系列的嵌套循环与每个反射
..