草庐IT

反射面

全部标签

c# - 反射.Net : how to load dependencies?

我尝试使用反射将插件系统添加到我的Windows.Net应用程序;但是当有依赖的插件时它会失败。插件类必须实现接口(interface)“IAddon”并具有一个空的构造函数。主程序使用反射加载插件:Assemblyassembly=Assembly.LoadFile(@"C:\Temp\TestAddon\Addon.dll");Typet=assembly.GetType("Test.MyAddon");ConstructorInfoctor=t.GetConstructor(newType[]{});IAddonaddon=(IAddon)ctor.Invoke(newobjec

Java反射获取属性名、属性类型、属性值

反射、泛型、JDBC等基础结合起来很多时候可以使代码功能更加强大,适合更多的场景使用一个通过反射获得属性名、属性类型、属性值的示例:importlombok.Builder;importlombok.Data;importlombok.ToString;importjava.lang.reflect.Field;/***反射*/publicclassReflectTest{publicstaticvoidreflect(Tt){//获取所有属性//getDeclaredFields不包含父类,包含私有属性//getFields包含父类属性Field[]fields=t.getClass().g

C# 反射 : How to get the type of a Nullable<int>?

我想做的是这样的:switch(myObject.GetType().GetProperty("id")){case??://whenNullable,dothiscase??://whenstring,dothiscase??://whenNullable,dothisobject.GetType()下的什么路径会有我可以使用case语句比较的数据类型的字符串名称?我需要知道类型,以便我可以拥有多个Convert.ToInt32(string)之一,它将使用反射设置myObject的值。 最佳答案 我一直在使用以下类型的代码来检查

C# 反射 : How to get the type of a Nullable<int>?

我想做的是这样的:switch(myObject.GetType().GetProperty("id")){case??://whenNullable,dothiscase??://whenstring,dothiscase??://whenNullable,dothisobject.GetType()下的什么路径会有我可以使用case语句比较的数据类型的字符串名称?我需要知道类型,以便我可以拥有多个Convert.ToInt32(string)之一,它将使用反射设置myObject的值。 最佳答案 我一直在使用以下类型的代码来检查

c# - 如何使用反射调用扩展方法?

我明白以前有人问过类似的问题,但我很难在下面的代码中调用LinqWhere方法。我希望使用反射来动态调用此方法,并动态构建Where子句中使用的委托(delegate)(或lambda)。这是一个简短的代码示例,一旦运行,将有助于构成我正在构建的解释型DSL的一部分。干杯。publicstaticvoidCallWhereMethod(){ListmyObjects=newList(){newMyObject{Name="JonSimpson"}};System.DelegateNameEquals=BuildEqFuncFor("Name","JonSimpson");object[

c# - 如何使用反射调用扩展方法?

我明白以前有人问过类似的问题,但我很难在下面的代码中调用LinqWhere方法。我希望使用反射来动态调用此方法,并动态构建Where子句中使用的委托(delegate)(或lambda)。这是一个简短的代码示例,一旦运行,将有助于构成我正在构建的解释型DSL的一部分。干杯。publicstaticvoidCallWhereMethod(){ListmyObjects=newList(){newMyObject{Name="JonSimpson"}};System.DelegateNameEquals=BuildEqFuncFor("Name","JonSimpson");object[

c# - 什么时候使用反射?模式/反模式

我理解反射API(在c#中),但我不确定我会在什么情况下使用它。有哪些模式-使用反射的反模式? 最佳答案 在我正在开发的一个产品中,我们经常使用它,但反射是一种复杂、缓慢的野兽。不要仅仅因为它听起来有趣或有趣就去寻找使用它的地方。当您遇到无法以任何其他方式解决的问题时(为插件或框架动态加载程序集、程序集检查、在构建时不知道类型的工厂等),您将使用它。查看反射教程以了解它是如何工作的当然值得,但不要陷入“拿着锤子,一切看起来都像钉子”的陷阱。它有非常专业的用例。 关于c#-什么时候使用反射

c# - 什么时候使用反射?模式/反模式

我理解反射API(在c#中),但我不确定我会在什么情况下使用它。有哪些模式-使用反射的反模式? 最佳答案 在我正在开发的一个产品中,我们经常使用它,但反射是一种复杂、缓慢的野兽。不要仅仅因为它听起来有趣或有趣就去寻找使用它的地方。当您遇到无法以任何其他方式解决的问题时(为插件或框架动态加载程序集、程序集检查、在构建时不知道类型的工厂等),您将使用它。查看反射教程以了解它是如何工作的当然值得,但不要陷入“拿着锤子,一切看起来都像钉子”的陷阱。它有非常专业的用例。 关于c#-什么时候使用反射

c# - 引用参数和反射

我不确定我是否完全遗漏了这里的某些东西,但我找不到任何方法来确定参数是否通过引用传递或不通过使用反射传递。ArgumentInfo有一个属性“IsOut”,但没有“IsRef”。我将如何获取给定MethodInfo中的所有引用参数? 最佳答案 ParameterInfo[]parameters=myMethodInfo.GetParameters();foreach(ParameterInfoparameterinparameters){boolisRef=parameterInfo.ParameterType.IsByRef;}

c# - 引用参数和反射

我不确定我是否完全遗漏了这里的某些东西,但我找不到任何方法来确定参数是否通过引用传递或不通过使用反射传递。ArgumentInfo有一个属性“IsOut”,但没有“IsRef”。我将如何获取给定MethodInfo中的所有引用参数? 最佳答案 ParameterInfo[]parameters=myMethodInfo.GetParameters();foreach(ParameterInfoparameterinparameters){boolisRef=parameterInfo.ParameterType.IsByRef;}