草庐IT

Reflection

全部标签

c# - 将整数转换为仅在运行时已知的盒装枚举类型

假设我们有一个枚举:enumFoo{A=1,B=2,C=3}如果类型在编译时已知,则可以使用直接转换在枚举类型和基础类型(通常是int)之间进行更改:staticintGetValue(){return2;}...Foofoo=(Foo)GetValue();//becomesFoo.B装箱后得到一个Foo类型的框:objecto1=foo;Console.WriteLine(o1.GetType().Name);//writesFoo(实际上,您可以装箱为Foo并拆箱为int,或者装箱为int并拆箱为Foo很高兴)但是(问题);如果枚举类型只在运行时才知道,事情就……更棘手了。将它装

c# - 将整数转换为仅在运行时已知的盒装枚举类型

假设我们有一个枚举:enumFoo{A=1,B=2,C=3}如果类型在编译时已知,则可以使用直接转换在枚举类型和基础类型(通常是int)之间进行更改:staticintGetValue(){return2;}...Foofoo=(Foo)GetValue();//becomesFoo.B装箱后得到一个Foo类型的框:objecto1=foo;Console.WriteLine(o1.GetType().Name);//writesFoo(实际上,您可以装箱为Foo并拆箱为int,或者装箱为int并拆箱为Foo很高兴)但是(问题);如果枚举类型只在运行时才知道,事情就……更棘手了。将它装

c# - 使用反射,我如何检测具有 setter 的属性?

我有这段代码来遍历一个对象并通过反射获取它的所有属性:foreach(varpropertyInfointypeof(TBase).GetProperties(BindingFlags.Public|BindingFlags.Instance)){varoldValue=propertyInfo.GetValue(oldVersion,null);}我如何进行检查以仅查看具有“Set”的属性?(我想忽略只读值-只是“获取”。) 最佳答案 PropertyInfo.CanWrite(documentation)或PropertyInf

c# - 使用反射,我如何检测具有 setter 的属性?

我有这段代码来遍历一个对象并通过反射获取它的所有属性:foreach(varpropertyInfointypeof(TBase).GetProperties(BindingFlags.Public|BindingFlags.Instance)){varoldValue=propertyInfo.GetValue(oldVersion,null);}我如何进行检查以仅查看具有“Set”的属性?(我想忽略只读值-只是“获取”。) 最佳答案 PropertyInfo.CanWrite(documentation)或PropertyInf

c# - 如何调用带有 out 参数的方法?

我想公开WebClient.DownloadDataInternal方法,如下所示:[ComVisible(true)]publicclassMyWebClient:WebClient{privateMethodInfo_DownloadDataInternal;publicMyWebClient(){_DownloadDataInternal=typeof(WebClient).GetMethod("DownloadDataInternal",BindingFlags.NonPublic|BindingFlags.Instance);}publicbyte[]DownloadData

c# - 如何调用带有 out 参数的方法?

我想公开WebClient.DownloadDataInternal方法,如下所示:[ComVisible(true)]publicclassMyWebClient:WebClient{privateMethodInfo_DownloadDataInternal;publicMyWebClient(){_DownloadDataInternal=typeof(WebClient).GetMethod("DownloadDataInternal",BindingFlags.NonPublic|BindingFlags.Instance);}publicbyte[]DownloadData

c# - 如何从其构造函数设置自定义异常类的 InnerException

当我在该对象的构造函数中时,如何设置Exception对象的InnerException属性?这归结为查找和设置没有setter的属性的支持字段。顺便说一句:我看过这个evain.net-GettingthefieldbackingapropertyusingReflection但如果可能,寻找非基于IL的解决方案。Exception的构造函数是创建Exception类型的地方,所以我不能使用基类构造函数MyException()来调用它:base(...)等 最佳答案 您通过调用基本构造函数来设置内部异常:publicMyExce

c# - 如何从其构造函数设置自定义异常类的 InnerException

当我在该对象的构造函数中时,如何设置Exception对象的InnerException属性?这归结为查找和设置没有setter的属性的支持字段。顺便说一句:我看过这个evain.net-GettingthefieldbackingapropertyusingReflection但如果可能,寻找非基于IL的解决方案。Exception的构造函数是创建Exception类型的地方,所以我不能使用基类构造函数MyException()来调用它:base(...)等 最佳答案 您通过调用基本构造函数来设置内部异常:publicMyExce

c# - 在运行时以编程方式获取摘要注释

我正在寻找一种方法来以编程方式获取ASP.net中方法的Xml注释的摘要部分。我看过以前的相关帖子,但它们没有提供在网络环境中这样做的方法。我不能使用任何第3方应用程序,并且由于Web环境,VisualStudio插件也没有多大用处。我发现最接近可行解决方案的是JimBlackler项目,但它只适用于DLL。自然地,“提供.CS文件,获取XML文档”之类的东西是最佳的。现状我有一个网络服务并试图为其动态生成文档。阅读方法和属性很容易,但是获取每个方法的摘要让我有点失望。//////ThisIswhatI'mtryingtoread///publicclassSomeClass(){//

c# - 在运行时以编程方式获取摘要注释

我正在寻找一种方法来以编程方式获取ASP.net中方法的Xml注释的摘要部分。我看过以前的相关帖子,但它们没有提供在网络环境中这样做的方法。我不能使用任何第3方应用程序,并且由于Web环境,VisualStudio插件也没有多大用处。我发现最接近可行解决方案的是JimBlackler项目,但它只适用于DLL。自然地,“提供.CS文件,获取XML文档”之类的东西是最佳的。现状我有一个网络服务并试图为其动态生成文档。阅读方法和属性很容易,但是获取每个方法的摘要让我有点失望。//////ThisIswhatI'mtryingtoread///publicclassSomeClass(){//