Tag: reflection

如何检查一个types是否提供无参数的构造函数?

我想检查一个在运行时已知的types是否提供了一个无参数的构造函数。 Type类没有产生任何有希望的东西,所以我假设我必须使用reflection?

确定代码是否作为unit testing的一部分运行

我有一个unit testing(nUnit)。 如果通过unit testing运行,则调用堆栈中的许多图层将失败。 理想情况下,你会使用类似嘲笑的东西来设置这个方法依赖的对象,但这是第三方代码,我不能做很多工作。 我不想安装nUnit特定的方法 – 这里有太多的级别,它是一个糟糕的unit testing方式。 相反,我想要做的就是在调用堆栈中添加这样的内容 #IF DEBUG // Unit tests only included in debug build if (IsRunningInUnitTest) { // Do some setup to avoid error } #endif 那么有关如何编写IsRunningInUnitTest的任何想法? PS我完全知道,这不是伟大的devise,但我认为它比替代品更好。

是否有可能在Java中通过reflection访问私人领域

在Java中可以通过reflection访问私有字段str吗? 比如要获得这个字段的值。 class Test { private String str; public void setStr(String value) { str = value; } }

将python“type”对象转换为string

我想知道如何使用python的reflectionfunction将python“type”对象转换为string。 例如,我想打印一个对象的types print "My type is " + type(someObject) # (which obviously doesn't work like this) 编辑:顺便说一句,谢谢你,我只是寻找简单的打印types的控制台输出的目的,没有什么幻想。 Gabi的type(someObject).__name__工作正常:)

我怎样才能从string表示获得genericstypes?

我有MyClass<T> 。 然后我有这个string s = "MyClass<AnotherClass>"; 。 我怎样才能从strings获取Type? 一种方法(丑陋的)是parsing出“<”和“>”,并做: Type acType = Type.GetType("AnotherClass"); Type whatIwant = typeof (MyClass<>).MakeGenericType(acType); 但有没有一个更清晰的方式来获得最终的types没有任何parsing等?

WCF反序列化如何在不调用构造函数的情况下实例化对象?

WCF反序列化有一些魔力。 它如何在不调用其构造函数的情况下实例化数据协定types的实例? 例如,考虑这个数据合同: [DataContract] public sealed class CreateMe { [DataMember] private readonly string _name; [DataMember] private readonly int _age; private readonly bool _wasConstructorCalled; public CreateMe() { _wasConstructorCalled = true; } // … other members here } 通过DataContractSerializer获取此对象的实例时,您将看到_wasConstructorCalled字段为false 。 那么,WCF如何做到这一点? 这是别人可以使用的技术,还是隐藏起来的?

如何获得与reflection静态属性

所以这似乎很基本,但我不能得到它的工作。 我有一个对象,我正在使用reflection来获取它的公共属性。 其中一个属性是静态的,我没有运气得到它。 Public Function GetProp(ByRef obj As Object, ByVal propName as String) as PropertyInfo Return obj.GetType.GetProperty(propName) End Function 上面的代码工作正常公共实例属性,到目前为止,我所需要的。 据说我可以使用BindingFlags来请求其他types的属性(私人,静态),但我似乎无法find正确的组合。 Public Function GetProp(ByRef obj As Object, ByVal propName as String) as PropertyInfo Return obj.GetType.GetProperty(propName, Reflection.BindingFlags.Static Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public) End Function 但是,请求任何静态成员仍然没有返回。 .NET的reflection器可以看到静态属性就好了,所以很明显,我在这里失去了一些东西。

.NET Reflector有没有“免费”的select?

可能重复: 比.NET Reflector更好的东西? 可能重复: reflection器的开源替代品? 我不认为这是重复的,因为其他问题的联系是关于学习reflection器如何工作,而这个问题是关于reflection器停止自由时的应对 现在Red-Gate已经说.NET Reflector将不再是免费的了 ,还有没有其他办法可以让购买订单获得批准? 看来jetbrains可能会带来一个工具 : 好消息是,我们正在准备一个独立的二进制作为源应用程序,即一个反编译器+程序集浏览器,以探索任何.NET编译代码是合法的探索。 我们没有任何特定的发布date,但今年将会发布,而且是免费的。 而说“自由”,我们其实是指“自由”。 另外ilspy是一个新的开源工具,似乎正在取得良好的进展。 ILSpy是开源的.NET程序集浏览器和反编译器。 Red Gate宣布,.NET Reflector的免费版本将在2011年2月底之前不复存在。

寻找定义类的PHP文件(在运行时)

PHP中是否有任何reflection/内省/魔法,可以让您find定义了特定类(或函数)的PHP文件? 换句话说,我有一个PHP类的名称,或一个实例化的对象。 我想把它传递给(函数,reflection类等),将返回类定义的文件系统path。 /path/to/class/definition.php 我意识到我可以使用( get_included_files())来获得目前为止已经包含的所有文件的列表,然后手动parsing它们,但是对于单次尝试来说,这是大量文件系统访问。 我也意识到我可以在我们的__autoload机制中编写一些额外的代码来caching这些信息。 但是,在我所想的情况下,修改现有的__自动加载是不受限制的。 听到可以做到这一点的扩展会很有趣,但我最终会喜欢一些可以在“股票”安装上运行的东西。

使用Razor / MVC3将AssemblyVersion变成网页的问题

我在我的_Layout.cshtml文件的脚注中使用下面的代码将AssemblyInfo版本数据放入我的MVC3站点中每个页面的页脚。 然而: @System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() 只需打印在页脚中: Revision 0.0.0.0 当我修改视图来显示“执行程序集”的所有程序集信息使用以下 @System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString() 其中打印以下内容: Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 这表明“执行大会”不是我的主要应用程序,它是视图本身。 我如何获得实际应用程序的汇编信息,而不仅仅是单个视图?