草庐IT

反射面

全部标签

C#使用反射获取params的值

如何获取parms的值(在使用反射的循环中)。在上一个问题中,有人向我展示了如何使用反射遍历参数。staticvoidMain(string[]args){ManyParms("a","b","c",10,20,true,"end");Console.ReadLine();}staticvoidManyParms(stringa,stringb,stringc,intd,shorte,boolf,stringg){varparameters=MethodBase.GetCurrentMethod().GetParameters();foreach(ParameterInfoparame

c# - 有没有办法通过反射获取类型的别名?

我正在编写一个简单的代码生成应用程序来从DB2数据库模式构建POCO。我知道这无关紧要,但我更喜欢使用类型别名而不是实际的系统类型名称(如果它们可用的话),即“int”而不是“Int32”。有没有一种方法可以使用反射来获取类型的别名而不是实际类型?//GetthetypenamevartypeName=column.DataType.Name;//Ifcolumn.DataTypeis,say,Int64,Iwouldliketheresultingpropertygenerated//inthePOCOtobe...publiclongLongColumn{get;set;}//ra

c# - 有没有办法通过反射获取类型的别名?

我正在编写一个简单的代码生成应用程序来从DB2数据库模式构建POCO。我知道这无关紧要,但我更喜欢使用类型别名而不是实际的系统类型名称(如果它们可用的话),即“int”而不是“Int32”。有没有一种方法可以使用反射来获取类型的别名而不是实际类型?//GetthetypenamevartypeName=column.DataType.Name;//Ifcolumn.DataTypeis,say,Int64,Iwouldliketheresultingpropertygenerated//inthePOCOtobe...publiclongLongColumn{get;set;}//ra

c# - 如何通过反射检查属性是否为虚拟属性?

给定一个对象,我如何判断该对象是否具有虚拟属性?varentity=repository.GetByID(entityId);我尝试查看:PropertyInfo[]properties=entity.GetType().GetProperties();但无法辨别是否有任何属性表示虚拟。 最佳答案 PropertyInfo[]properties=entity.GetType().GetProperties().Where(p=>p.GetMethod.IsVirtual).ToArray();或者,对于.NET4及以下版本:Pro

c# - 如何通过反射检查属性是否为虚拟属性?

给定一个对象,我如何判断该对象是否具有虚拟属性?varentity=repository.GetByID(entityId);我尝试查看:PropertyInfo[]properties=entity.GetType().GetProperties();但无法辨别是否有任何属性表示虚拟。 最佳答案 PropertyInfo[]properties=entity.GetType().GetProperties().Where(p=>p.GetMethod.IsVirtual).ToArray();或者,对于.NET4及以下版本:Pro

c# - 通过反射遍历类型时如何过滤掉 <>c_DisplayClass 类型?

我正在尝试创建一个单元测试,以确保我的所有业务类(我称它们为命令和查询类)都可以使用Windsor进行解析。我有以下单元测试:[TestMethod]publicvoidWindsor_Can_Resolve_All_Command_And_Query_Classes(){//SetupAssemblyasm=Assembly.GetAssembly(typeof(IUnitOfWork));IListclassTypes=asm.GetTypes().Where(x=>x.Namespace.StartsWith("MyApp.DomainModel.Commands")||x.Na

c# - 通过反射遍历类型时如何过滤掉 <>c_DisplayClass 类型?

我正在尝试创建一个单元测试,以确保我的所有业务类(我称它们为命令和查询类)都可以使用Windsor进行解析。我有以下单元测试:[TestMethod]publicvoidWindsor_Can_Resolve_All_Command_And_Query_Classes(){//SetupAssemblyasm=Assembly.GetAssembly(typeof(IUnitOfWork));IListclassTypes=asm.GetTypes().Where(x=>x.Namespace.StartsWith("MyApp.DomainModel.Commands")||x.Na

c# - 如何隐式转换反射方法调用

我有一个Thing类,它可以从string隐式转换。当我直接调用带有Thing参数的方法时,从string到Thing的转换正确完成。但是,如果我使用反射来调用相同的方法,它会抛出异常System.ArgumentException:Objectoftype'System.String'cannotbeconvertedtotype'Things.Program+Thing'.也许这有一个很好的理由,但我想不通。有人知道如何使用反射来实现这一点吗?namespaceThings{classProgram{publicclassThing{publicstringSome;publics

c# - 如何隐式转换反射方法调用

我有一个Thing类,它可以从string隐式转换。当我直接调用带有Thing参数的方法时,从string到Thing的转换正确完成。但是,如果我使用反射来调用相同的方法,它会抛出异常System.ArgumentException:Objectoftype'System.String'cannotbeconvertedtotype'Things.Program+Thing'.也许这有一个很好的理由,但我想不通。有人知道如何使用反射来实现这一点吗?namespaceThings{classProgram{publicclassThing{publicstringSome;publics

c# - 使用反射查找实现的接口(interface)

我有以下情况:publicinterfaceIPerson{..}publicclassPerson:IPerson{..}publicclassUser:Person{..}现在;如果我有一个“用户”对象——我如何检查它是否使用反射实现了IPerson?更准确地说,我有一个对象可能有一个属性SomeUser,它应该是实现接口(interface)“IPerson”的某种类型。在我的例子中,我实际上有一个用户,但这是我想通过反射检查的。我不知道如何检查属性类型,因为它是一个“用户”,但我想检查它是否实现了IPerson...:varcontrol=_container.Resolve(