Tag: reflection

在Java中修改最终字段

我们从一个简单的testing用例开始: import java.lang.reflect.Field; public class Test { private final int primitiveInt = 42; private final Integer wrappedInt = 42; private final String stringValue = "42"; public int getPrimitiveInt() { return this.primitiveInt; } public int getWrappedInt() { return this.wrappedInt; } public String getStringValue() { return this.stringValue; } public void changeField(String name, Object value) throws IllegalAccessException, NoSuchFieldException […]

如何阅读程序集属性

在我的程序中,如何读取AssemblyInfo.cs中设置的属性: [assembly: AssemblyTitle("My Product")] [assembly: AssemblyDescription("…")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Radeldudel inc.")] [assembly: AssemblyProduct("My Product")] [assembly: AssemblyCopyright("Copyright @ me 2008")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] 我想显示一些这些值给我的程序的用户,所以我想知道如何加载他们从主程序和我使用的Komponent程序集。

Javareflection得到所有私人领域

我不知道是否有一种方法来获得所有类的java私有领域和他们的types。 例如让我们假设我有一个类 class SomeClass { private String aaa; private SomeOtherClass bbb; private double ccc; } 现在我想获得类SomeClass所有私有字段( aaa , bbb , ccc )(不知道所有字段的名称),并检查它们的types。

使用程序集中的Web应用程序版本号(ASP.NET / C#)

如何获取引用程序集中的调用Web应用程序的版本号? 我试过使用System.Reflection.Assembly.GetCallingAssembly()。GetName(),但它只是给我dynamic编译的程序集(返回版本号0.0.0.0)。 更新:在我的情况下,我需要一个解决scheme,不需要引用回到Web应用程序程序集中的类。 杰森的答案在下面(标记为接受)符合这个要求 – 很多其他人在这里提交没有。

通过调用prototype.constructor.apply实例化一个JavaScript对象

让我从一个我想要做的具体例子开始。 我有一组年,月,日,时,分,秒和毫秒的组件在[ 2008, 10, 8, 00, 16, 34, 254 ] 。 我想使用下面的标准构造函数实例化一个Date对象: new Date(year, month, date [, hour, minute, second, millisecond ]) 我如何将我的数组传递给这个构造函数来获得一个新的Date实例? [ 更新 :我的问题实际上超出了这个具体的例子。 我想要一个内置的JavaScript类的一般解决scheme,如Date,Array,RegExp等,其构造函数是我无法实现的。 ] 我正在尝试做如下的事情: var comps = [ 2008, 10, 8, 00, 16, 34, 254 ]; var d = Date.prototype.constructor.apply(this, comps); 我可能需要在那里有一个“ new ”的地方。 上面只是返回当前时间,就好像我已经调用了“ (new Date()).toString() ”。 我也承认,我可能会完全按照上面的方向错误的方向:) 注意 […]

找出一个types是否实现了一个通用接口

假设我有一个typesMyType。 我想要做到以下几点: 找出MyType是否实现了IList接口,对于一些T. 如果(1)的答案是肯定的,找出T是什么。 这似乎是做到这一点的方法是GetInterface(),但只能让你search一个特定的名称。 有没有一种方法来search“IListforms的所有接口”(如果可能的话,如果接口是IList的子接口,它也会有用)。 相关: 如何确定一个types是否实现了一个特定的通用接口types

如何从.net中的数组types获取数组项types

说我有一个System.String[]types的对象。 我可以查询types对象,以确定它是否是一个数组 Type t1 = typeof(System.String[]); bool isAnArray = t1.IsArray; // should be true 但是,我如何从t1获取数组项的types对象 Type t2 = ….; // should be typeof(System.String)

C#使用Activator.CreateInstance

我昨天问了一个关于使用reflection或策略模式dynamic调用方法的问题。 然而,从那以后,我决定将这些方法改为实现一个通用接口的各个类。 原因在于,每个class级虽然具有一些相似之处,但也执行了该class级特有的某些方法。 我一直在使用这样的策略: switch (method) { case "Pivot": return new Pivot(originalData); case "GroupBy": return new GroupBy(originalData); case "Standard deviation": return new StandardDeviation(originalData); case "% phospho PRAS Protein": return new PhosphoPRASPercentage(originalData); case "AveragePPPperTreatment": return new AveragePPPperTreatment(originalData); case "AvgPPPNControl": return new AvgPPPNControl(originalData); case "PercentageInhibition": return new PercentageInhibition(originalData); default: throw new Exception("ERROR: Method " + method + […]

从string(reflection?)从C#dynamic对象获取属性值

假设我有一个dynamicvariables: dynamic d = *something* 现在, 东西创build属性到d我有另一方面从string数组: string[] strarray = { 'property1','property2',….. } 我不提前知道属性名称。 如何在代码中,一旦d被创build,并从数据库拉strarray,我可以得到的价值? 我想得到d.property1 , d.property2 。 我看到该对象有一个_dictionary内部字典,其中包含键和值,我如何_dictionary他们? 非常感谢您的帮助!

在C#中使用IsAssignableFrom和“is”关键字

在尝试学习Unity时 ,我一直看到下面的代码来覆盖MVC中的GetControllerInstance : if(!typeof(IController).IsAssignableFrom(controllerType)) { … } 这似乎是一个基本写作的非常复杂的方式 if(controllerType is IController) { … } 我很欣赏is和IsAssignableFrom之间的细微差别,即IsAssignableFrom不包括IsAssignableFrom转换,但是我正努力去理解这种差异在实际场景中的含义。 什么时候selectIsAssignableFrom over is IsAssignableFrom is ? 在GetControllerExample会有什么不同? if (!typeof(IController).IsAssignableFrom(controllerType)) throw new ArgumentException(…); return _container.Resolve(controllerType) as IController;