草庐IT

Reflection

全部标签

c# - 如何获得方法参数的名称?

如果我有这样的方法:publicvoidMyMethod(intarg1,stringarg2)我将如何获取参数的实际名称?我似乎无法在MethodInfo中找到任何实际上会给我参数名称的内容。我想写一个这样的方法:publicstaticstringGetParamName(MethodInfomethod,intindex)所以如果我调用这个方法:stringname=GetParamName(MyMethod,0)它将返回“arg1”。这可能吗? 最佳答案 publicstaticstringGetParamName(Syst

c# - 如何获得方法参数的名称?

如果我有这样的方法:publicvoidMyMethod(intarg1,stringarg2)我将如何获取参数的实际名称?我似乎无法在MethodInfo中找到任何实际上会给我参数名称的内容。我想写一个这样的方法:publicstaticstringGetParamName(MethodInfomethod,intindex)所以如果我调用这个方法:stringname=GetParamName(MyMethod,0)它将返回“arg1”。这可能吗? 最佳答案 publicstaticstringGetParamName(Syst

c# - 带有 BindingFlags.Public 的方法 GetProperties 不返回任何内容

可能是个愚蠢的问题,但我在网上找不到任何解释。这段代码不起作用的具体原因是什么?该代码应该将属性值从Contact(源)复制到新实例化的ContactBO(目标)对象。publicContactBO(Contactcontact){Objectsource=contact;Objectdestination=this;PropertyInfo[]destinationProps=destination.GetType().GetProperties(BindingFlags.Public);PropertyInfo[]sourceProps=source.GetType().GetPr

c# - 带有 BindingFlags.Public 的方法 GetProperties 不返回任何内容

可能是个愚蠢的问题,但我在网上找不到任何解释。这段代码不起作用的具体原因是什么?该代码应该将属性值从Contact(源)复制到新实例化的ContactBO(目标)对象。publicContactBO(Contactcontact){Objectsource=contact;Objectdestination=this;PropertyInfo[]destinationProps=destination.GetType().GetProperties(BindingFlags.Public);PropertyInfo[]sourceProps=source.GetType().GetPr

c# - TypeDescriptor.GetProperties() 与 Type.GetProperties()

考虑以下代码。Objectobj;PropertyDescriptorCollectionA=TypeDescriptor.GetProperties(obj);PropertyInfo[]B=obj.GetType().GetProperties();我试图了解A和B之间的区别。据我了解,TypeDescriptor.GetProperties()将返回自定义TypeDescriptor属性,其中Type.GetProperties()只会返回对象的内在“真实”属性。这是正确的吗?如果obj没有任何自定义TypeDescriptor属性,那么它只是默认返回对象的文字内在属性。

c# - TypeDescriptor.GetProperties() 与 Type.GetProperties()

考虑以下代码。Objectobj;PropertyDescriptorCollectionA=TypeDescriptor.GetProperties(obj);PropertyInfo[]B=obj.GetType().GetProperties();我试图了解A和B之间的区别。据我了解,TypeDescriptor.GetProperties()将返回自定义TypeDescriptor属性,其中Type.GetProperties()只会返回对象的内在“真实”属性。这是正确的吗?如果obj没有任何自定义TypeDescriptor属性,那么它只是默认返回对象的文字内在属性。

c# - PresentationFramework.dll 中出现“System.Reflection.TargetInvocationException”

好吧,我有一个奇怪的错误......这很好用:privatevoidradioButtonNormalPoint_Checked(objectsender,RoutedEventArgse){//comboBoxNormalPoint.SelectedIndex=0;//ellipsePoint.Fill=System.Windows.Media.Brushes.Black;}这会抛出System.Reflection.TargetInvocationException:privatevoidradioButtonNormalPoint_Checked(objectsender,Rou

c# - PresentationFramework.dll 中出现“System.Reflection.TargetInvocationException”

好吧,我有一个奇怪的错误......这很好用:privatevoidradioButtonNormalPoint_Checked(objectsender,RoutedEventArgse){//comboBoxNormalPoint.SelectedIndex=0;//ellipsePoint.Fill=System.Windows.Media.Brushes.Black;}这会抛出System.Reflection.TargetInvocationException:privatevoidradioButtonNormalPoint_Checked(objectsender,Rou

c# - 递归获取类的属性和子属性

我在做类似RecursivelyGetProperties&ChildPropertiesOfAnObject的事情,但我想递归地使用反射来获取每个属性。我从RecursivelyPrinttheproperties得到了代码.代码的问题是:它只向下一层,我想知道你如何使用反射自动获取所有属性?我刚刚编写了以下示例容器代码:publicclassContainer{publicBottleMyBottle{get;set;}publicListAddresses{get;set;}publicContainer(){Addressa=newAddress();a.AddressLine

c# - 递归获取类的属性和子属性

我在做类似RecursivelyGetProperties&ChildPropertiesOfAnObject的事情,但我想递归地使用反射来获取每个属性。我从RecursivelyPrinttheproperties得到了代码.代码的问题是:它只向下一层,我想知道你如何使用反射自动获取所有属性?我刚刚编写了以下示例容器代码:publicclassContainer{publicBottleMyBottle{get;set;}publicListAddresses{get;set;}publicContainer(){Addressa=newAddress();a.AddressLine