Tag: reflection

使用reflection在内部类中使用参数实例化构造函数

我有这样的一些东西: object[] parameter = new object[1]; parameter[0] = x; object instantiatedType = Activator.CreateInstance(typeToInstantiate, parameter); 和 internal class xxx : ICompare<Type> { private object[] x; # region Constructors internal xxx(object[] x) { this.x = x; } internal xxx() { } … } 我得到: 抛出exception:System.MissingMethodException:未findtypes为“xxxx.xxx”的构造函数 有任何想法吗?

Javareflection调用与原始types的构造函数

我在我的testing框架中有一个方法,根据传入的参数创build一个类的实例: public void test(Object… constructorArgs) throws Exception { Constructor<T> con; if (constructorArgs.length > 0) { Class<?>[] parameterTypes = new Class<?>[constructorArgs.length]; for (int i = 0; i < constructorArgs.length; i++) { parameterTypes[i] = constructorArgs[i].getClass(); } con = clazz.getConstructor(parameterTypes); } else { con = clazz.getConstructor(); } } 问题是,如果构造函数具有原始types,则不起作用,如下所示: public Range(String name, int lowerBound, int upperBound) { … […]

C#属性可以访问目标类吗?

我想通过使用reflection从属性类访问类的属性。 可能吗? 例如: class MyAttribute : Attribute { private void AccessTargetClass() { // Do some operations } } [MyAttribute] class TargetClass { }

为什么System.Type.GetHashCode为所有实例和types返回相同的值?

以下代码将生成46104728的输出: using System; namespace TestApplication { internal static class Program { private static void Main() { Type type = typeof(string); Console.WriteLine(type.GetHashCode()); Console.ReadLine(); } } } 但是这样做: using System; namespace TestApplication { internal static class Program { private static void Main() { Type type = typeof(Program); Console.WriteLine(type.GetHashCode()); Console.ReadLine(); } } } 然而,在http://ideone.com上它会为每种types产生不同的结果。 这个问题现在已经在一个以上的系统中被转载。 我正在使用.NET 4.0。

如何在另一个variables中具有名称时设置C#4dynamic对象的属性

我正在寻找一种方法来修改dynamic C#4.0对象的属性,只有在运行时才知道该属性的名称。 有没有办法做一些像( ExpandoObject只是作为一个例子,这可能是实现IDynamicMetaObjectProvider任何类): string key = "TestKey"; dynamic e = new ExpandoObject(); e[key] = "value"; 这将相当于: dynamic e = new ExpandoObject(); e.TestKey = "value"; 或者是唯一的前瞻性思考方式?

重构/获取php函数的代码

我可以通过它的名字以编程方式获得函数的代码? 喜欢: function blah($a, $b) { return $a*$b; } echo getFunctionCode("blah"); 可能吗? 有没有任何PHP自我描述函数来重build函数/类代码? (而不是从源文件中获取源代码) 在Java中存在: http : //java.sun.com/developer/technicalArticles/ALT/Reflection/ 在PHP中: get_class_method(0函数) types ReflectionFunction(感谢Alin Purcaru)

在3分钟内,什么是反思?

许多.Net面试问题列表( 包括好的问题列表)包含了一个问题:“什么是反思?”。 最近我被要求在5个问题的技术testing中回答这个问题,技术testing在15分钟内完成,在一张食堂递给我的一张白纸上。 我的回答是沿着“reflection允许您在运行时发现任何对象的方法,属性和字段”的行。 回想起来,我的答案解释了如何使用reflection,但是它不能解释reflection是什么。 在我看来,我的回答足以说明我明白了什么是反思,但没有解释什么是反思。 因此,请在.Net的背景下,用你自己的简洁的话来说明反思是什么。 不要花费三分钟以上的时间来回答。 不要参考.Net文档 ,我们都已经看到了。

如何从智能感知隐藏公共方法

我想隐藏intellisense成员列表中的公共方法。 我创build了一个属性,当应用于一个方法将导致该方法被调用时,其对象的构造。 我已经做了这个更好的支持部分类。 问题是,在某些环境(如Silverlight)中,reflection不能访问私有成员,即使是那些子类。 这是一个问题,因为所有的工作都是在基类中完成的。 我必须公开这些方法,但是我希望它们对于智能感知是隐藏的,类似于Obsolete属性的工作方式。 坦率地说,因为我是关于对象封装的肛门。 我尝试了不同的东西,但没有任何实际工作。 该方法仍显示在成员下拉菜单中。 如果我不希望他们被客户打电话,我怎样才能让公开的方法在智能感知中出现? 那真是个问题,非利士人呢! 这也可以适用于必须公开的MEF属性,虽然有时候你想把它们隐藏起来。 更新:自从我发布这个问题以来,我已经成熟了。 为什么我关心隐藏界面是超越我的。

使用内部构造函数实例化一个类

我有一个类的构造函数被定义为内部的,这意味着我不能实例化它。 虽然这可能是有道理的,但我仍然希望做一次debugging和研究的目的。 reflection可以这样做吗? 我知道我可以访问私人/内部成员,但我可以调用内部构造函数吗? 或者,因为构造函数没有什么重要,我可以使用reflection来说“看,只给我一个类的实例,而不调用构造函数,我会做手动工作”? 性能和“稳定性”在这里不是问题,因为它不是生产代码。 编辑:就像澄清:可悲的是,我不控制其他程序集,没有它的源代码,我只是试图了解它是如何工作的,因为它是文件旁边不存在,但我应该与它。

使用reflection获取属性的string名称

这里有很多reflection的例子可以让你得到: 1.class级中的所有属性 2.一个单一的属性,提供你知道的string名称 有没有一种方法(使用reflection,TypeDescriptor,或其他)来获取在运行时类中的属性的string名称,只要我有一个类和属性的实例? 编辑我知道,我可以很容易地获得在一个类中使用reflection的所有属性,然后获取每个属性的名称。 我要求的是一个函数,给我一个财产的名称,只要我通过它的财产的实例。 换句话说,如何从PropertyInfo []数组中find属性,并从Class.GetType()。GetProperty(myProperty)返回给我,以便我可以从中获取PropertyInfo.Name?