草庐IT

Reflection

全部标签

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

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

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

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

c# - 反射 MethodInfo.Invoke() 从方法内部捕获异常

我调用了MethodInfo.Invoke()以通过反射执行函数。该调用包含在try/catchblock中,但它仍然无法捕获我正在调用的函数抛出的异常。我收到以下消息:Exceptionwasunhandledbytheuser.为什么MethodInfo.Invoke()会阻止异常在Invoke()之外被捕获?我该如何绕过它? 最佳答案 编辑:据我了解您的问题,问题纯粹是一个IDE问题;您不喜欢VS将MethodInfo的调用引发的异常视为未捕获,但显然不是。您可以在此处阅读有关如何解决此问题的信息:WhyisTargetInv

c# - 反射 MethodInfo.Invoke() 从方法内部捕获异常

我调用了MethodInfo.Invoke()以通过反射执行函数。该调用包含在try/catchblock中,但它仍然无法捕获我正在调用的函数抛出的异常。我收到以下消息:Exceptionwasunhandledbytheuser.为什么MethodInfo.Invoke()会阻止异常在Invoke()之外被捕获?我该如何绕过它? 最佳答案 编辑:据我了解您的问题,问题纯粹是一个IDE问题;您不喜欢VS将MethodInfo的调用引发的异常视为未捕获,但显然不是。您可以在此处阅读有关如何解决此问题的信息:WhyisTargetInv

c# - 从基类反射(reflect)私有(private)字段

结构如下:我的类(class):超类(class)2父类(superclass)2:父类(superclass)1superClass2在Product.Web中,而SuperClass1在.NETSystem.Web程序集中我试图将一个值强加到SuperClass1上的私有(private)bool字段中。但无论我尝试什么,我都无法让字段从反射中返回。我将以下代码与不同的BindingFlag组合一起使用,但到目前为止没有任何效果。SuperClass1是一个抽象类。((SuperClass1)this).GetType().GetFields(System.Reflection.B

c# - 从基类反射(reflect)私有(private)字段

结构如下:我的类(class):超类(class)2父类(superclass)2:父类(superclass)1superClass2在Product.Web中,而SuperClass1在.NETSystem.Web程序集中我试图将一个值强加到SuperClass1上的私有(private)bool字段中。但无论我尝试什么,我都无法让字段从反射中返回。我将以下代码与不同的BindingFlag组合一起使用,但到目前为止没有任何效果。SuperClass1是一个抽象类。((SuperClass1)this).GetType().GetFields(System.Reflection.B

c# - StackTrace 文件名未知

在我使用StackTrace的代码中发生了一些奇怪的事情。几乎就像没有加载调试信息一样......但我正在DEBUG构建上运行它。.pdb文件肯定在bin目录中并且是最新的。我的想法真的用完了:publicclassTraceHelper{privatestaticIDictionaryTraceDictionary=newDictionary();publicTraceHelper(intduration){...TraceDictionary[InternalGetCallingLocation()]+=duration;...}publicstaticstringInternal

c# - StackTrace 文件名未知

在我使用StackTrace的代码中发生了一些奇怪的事情。几乎就像没有加载调试信息一样......但我正在DEBUG构建上运行它。.pdb文件肯定在bin目录中并且是最新的。我的想法真的用完了:publicclassTraceHelper{privatestaticIDictionaryTraceDictionary=newDictionary();publicTraceHelper(intduration){...TraceDictionary[InternalGetCallingLocation()]+=duration;...}publicstaticstringInternal

c# - 如何通过反射获取接口(interface)基类型?

publicinterfaceIBar{}publicinterfaceIFoo:IBar{}typeof(IFoo).BaseType==null如何获得IBar? 最佳答案 Type[]types=typeof(IFoo).GetInterfaces();编辑:如果你特别想要IBar,你可以这样做:Typetype=typeof(IFoo).GetInterface("IBar"); 关于c#-如何通过反射获取接口(interface)基类型?,我们在StackOverflow上找到

c# - 如何通过反射获取接口(interface)基类型?

publicinterfaceIBar{}publicinterfaceIFoo:IBar{}typeof(IFoo).BaseType==null如何获得IBar? 最佳答案 Type[]types=typeof(IFoo).GetInterfaces();编辑:如果你特别想要IBar,你可以这样做:Typetype=typeof(IFoo).GetInterface("IBar"); 关于c#-如何通过反射获取接口(interface)基类型?,我们在StackOverflow上找到