Tag: reflection

属性构造函数中的Lambdaexpression式

我创build了一个名为RelatedPropertyAttribute的Attribute类: [AttributeUsage(AttributeTargets.Property)] public class RelatedPropertyAttribute: Attribute { public string RelatedProperty { get; private set; } public RelatedPropertyAttribute(string relatedProperty) { RelatedProperty = relatedProperty; } } 我用这个来表示一个类中的相关属性。 我将如何使用它的例子: public class MyClass { public int EmployeeID { get; set; } [RelatedProperty("EmployeeID")] public int EmployeeNumber { get; set; } } 我想使用lambdaexpression式,以便我可以传递一个强types到我的属性的构造函数,而不是一个“魔术string”。 这样我可以利用编译器types检查。 例如: public class MyClass { public int […]

C#实例化反映types的generics列表

是否有可能从C#(.Net 2.0)中的reflectiontypes创build一个通用的对象? void foobar(Type t){ IList<t> newList = new List<t>(); //this doesn't work //… } typest在运行时才是已知的。

设置.NETexception对象的InnerException

我如何设置Exception对象的InnerException属性,而我在该对象的构造函数? 这归结为查找和设置没有setter的属性的后台字段。 顺便说一句:我已经看到这个( http://evain.net/blog/articles/2009/05/01/getting-the-field-backing-a-property-using-reflection ),但寻找非基于IL的解决scheme,如果可能的话。 Exception构造函数是创buildExceptiontypes的地方,所以我不能使用基类构造函数MyException():base(…)来调用它。

正在使用reflectiondevise的气味?

我看到很多C#,.net问题在这里使用reflection解决。 对我来说,他们中的很多人看起来像以良好devise(OOP)为代价来弯曲规则。 许多解决scheme看起来难以维持和“脚本化”。 一般来说使用reflection是一种好的做法吗? 有什么东西只能通过反思来解决吗? 编辑: 请举例说明反思是唯一的好方法。

通过generics类中的嵌套枚举的reflection获取枚举值

我需要通过reflection来打印出某些types的枚举值和相应的parsing值。 这在大多数情况下工作正常。 但是,如果枚举在genericstypes中声明, Enum.GetValues将引发以下exception: [System.NotSupportedException: Cannot create arrays of open type. ] at System.Array.InternalCreate(Void* elementType, Int32 rank, Int32* pLengths, Int32* pLowerBounds) at System.Array.CreateInstance(Type elementType, Int32 length) at System.Array.UnsafeCreateInstance(Type elementType, Int32 length) at System.RuntimeType.GetEnumValues() 完整的复制代码: using System; public class Program { public static void Main() { var enumType= typeof(Foo<>.Bar); var underlyingType = Enum.GetUnderlyingType(enumType); Console.WriteLine(enumType.IsEnum); foreach(var value […]

获取一个类的所有(派生)接口

java.lang.Class.getInterfaces返回所有直接实现的接口,即不会遍历类树来获取所有父types的所有接口。 例如,层次结构 public interface A {} public interface B {} public interface C extends B {} public class Foo implements A {} // Foo.class.getInterfaces() returns [A] public class Bar implements C {} // Bar.class.getInterfaces() returns [C], note B is not included. 对于Bar我想得到[B, C] ,但是对于任意的树深度。 我可以自己写这个,但是我确定一个图书馆必须存在这样做,任何想法?

我可以发现一个Java类声明的内部类使用reflection吗?

在Java中,有没有办法使用JDK库来发现在另一个类中实现的私有类? 还是我需要这样使用像ASM的东西?

PropertyInfo:属性索引器?

我有以下代码: PropertyInfo[] originalProperties = myType.GetProperties(); 我想从originalProperties排除所有索引器(myVar [“key”]显示为名为“Item”的属性)。 什么是正确的方法? 排除propInfo.Name == "Item"不是选项的所有属性。

如何获得.Net中给定types的程序集(System.Reflection.Assembly)?

在.Net中,给定一个types名称,是否有一个方法告诉我在哪个程序集(System.Reflection.Assembly的实例)中定义了该types? 我假设我的项目已经有了这个程序集的引用,只需要知道它是哪一个。

通过reflection获取枚举值

我有一个简单的枚举 public enum TestEnum { TestOne = 3, TestTwo = 4 } var testing = TestEnum.TestOne; 我想通过reflection来检索它的值(3)。 任何想法如何做到这一点?