草庐IT

reflect.TypeOf

全部标签

java - Java 对继承方法的反射(reflection)在 Windows 和 Linux 中是否不同?

在为持续集成测试(在JeOS服务器上)设置Hudson时,我遇到了一些奇怪的行为,我希望SO的优秀人员可以向我解释。我们的单元测试在很大程度上依赖于域对象的使用,其中有许多必须设置的属性(由于数据库中的空约束)。为了保持我们的测试可读性,我们创建了一个类InstantiationUtils,它可以实例化一个对象并通过反射设置一系列属性:publicstaticTnewInstance(finalClasstype,finalKeyValuePair...propertyValues){returnReflectionUtils.reflectionOperation(newReflec

c# - Reflection.Emit.ILGenerator异常处理 "Leave"指令

首先,一些背景信息:我正在为学校项目制作编译器。它已经在工作了,我正在花费大量精力来修复错误和/或优化它。我最近遇到了一个问题,我发现当您调用以下任何成员方法时,ILGenerator对象会生成一个额外的leave指令:BeginCatchBlock()BeginExceptFilterBlock()BeginFaultBlock()BeginFinallyBlock()EndExceptionBlock()因此,您通过调用BeginExceptionBlock()开始一个try语句,使用BeginCatchBlock()添加几个catch子句,可能添加一个带有的finally子句co

c# - Roslyn vs Reflection for TypeScript 代码生成器

我正在开发一个TypeScript代码生成器,它将使用C#类上的自定义属性来生成TypeScript定义和代码文件。我正在考虑两种用于TypeScript代码生成/源文件分析的选项:对编译程序集的思考罗斯林CTP该工具将使用属性和方法的自定义特性来生成TypeScript文件。现在我不打算将C#方法体转换为JavaScript,但将来可能会这样做。因此,出于这个原因,我正在认真考虑Roslyn。然而,为了简单地生成我的TypeScript类的大纲,我认为我可以使用反射和自定义属性。我在想:a)Roslyn是否提供反射无法提供的功能?我的理解是我无法通过反射获得方法体。b)RoslynC

c# - 我如何使用 Reflection + C# 获取所有引用

使用System.Reflection,我可以获得特定类的所有方法我需要知道对这些方法的引用是什么。例如:在VisualStudio中,如果你想要特定对象的引用右键单击对象并选择“查找所有引用”VisualStudio显示该选定对象的引用我想做同样的事情,但是通过反射代码或其他方式。我可以这样做吗? 最佳答案 这不能用反射来完成。反射是一种用于检查元数据和程序集的工具。为了找到对给定方法/类型的所有引用,您需要检查程序集的底层IL。反射仅具有非常有限的IL功能(仅将其作为字节数组返回)。您需要自定义检查该字节流,以便收集有关它所引用

c# - 异常信息 : System. Reflection.TargetInvocationException

我正在开发WPF应用程序,但我仅在运行时在单个设备上收到此错误。ExceptionInfo:System.Reflection.TargetInvocationException我的问题:任何可能导致此错误的线索?知道如何在Release模式下调试应用程序吗?ExceptionInfo:System.Reflection.TargetInvocationExceptionStack:atSystem.RuntimeMethodHandle.InvokeMethod(System.Object,System.Object[],System.Signature,Boolean)atSyst

c# - System.Reflection.RuntimeReflectionExtensions 中方法的目的是什么?

自.NET4.5(2012)以来,出现了一些新的扩展方法,来自System.Reflection.RuntimeReflectionExtensionsclass.然而,新方法似乎并没有给我们带来任何新东西。一个例子:staticvoidMain(){varprop1=typeof(string).GetProperty("Length");varprop2=typeof(string).GetRuntimeProperty("Length");//extension,needs:usingSystem.Reflection;Console.WriteLine(prop1==prop2

c# - 使用 Reflection.Emit 动态创建针对特定 .NET 运行时的程序集

我正在使用Reflection.Emit开发一个在运行时动态创建程序集的工具。该工具针对.NET4.5框架。我想知道是否可以指定动态生成的程序集目标是哪个.NET运行时(例如:指定将创建一个.NET3.5程序集)。 最佳答案 内置的反射发射在这里非常有限;你想要做的是告诉它使用特定的mscorlib程序集,但问题是很多反射发射涉及传递类型周围,​​这使得这非常困难。我发现解决这个问题的最务实的方法是切换到IKVM.Reflection.dll-IKVM.NET的一部分.此dll非常有意与Reflection.Emit具有相同的基本A

c# - Generics & Reflection - GenericArguments[0] 违反类型约束

我已经为这个问题绞尽脑汁了一段时间,本质上我是在尝试实现一个通用的存储库工厂,其名称如下:varresposFactory=newRepositoryFactory>();存储库工厂如下所示:publicclassRepositoryFactory:IRepositoryFactory{publicTGetRepository(GuidlistGuid,IEnumerablefieldMappings){AssemblycallingAssembly=Assembly.GetExecutingAssembly();Type[]typesInThisAssembly=callingAss

c# - 使用 Reflection.Emit 发出 "using (x) { ... }" block ?

我正在尝试在C#中使用Reflection.Emit来发出using(x){...}block。在我编写代码时,我需要获取当前栈顶,它是一个实现了IDisposable的对象,将其存储在一个局部变量中,在该变量上实现一个usingblock,然后将其放入其中添加更多代码(我可以处理最后一部分。)这是我尝试编译并在Reflector中查看的示例C#代码片段:publicvoidTest(){TestDisposabledisposable=newTestDisposable();using(disposable){thrownewException("Test");}}这在Reflect

c# - 如何获取自定义用户控件的 "typeof"

我有一个自定义用户控件DatePicker.cs。在另一段代码中,我有一组控件,我在其中检查控件的类型并根据类型执行一些逻辑。我的问题如下:typeof(DatePicker)评估:{Name="DatePicker"FullName="cusitecore.cedarsc.UserControls.DatePicker"}但是当我运行调试器并查看我的Web表单上的控件类型时,它是:{Name="cedarsc_usercontrols_datepicker_ascx"FullName="ASP.cedarsc_usercontrols_datepicker_ascx"}这两件事不相等