首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码分析,以判断给定类的属性是否从类内部设置

问代码分析,以判断给定类的属性是否从类内部设置
EN

Stack Overflow用户
提问于 2015-03-31 19:37:00
回答 2查看 54关注 0票数 0

我有一个定义了一些公共属性(get和set)的类。在这个类中,有一些函数,我需要找到一种方法来判断给定的属性是否在类中设置,无论是在哪里设置的。

例如,假设我们有一个名为P1的属性:

代码语言:javascript
复制
Public string P1
{
    get;set;
}

现在,我需要判断这个属性是否在相等操作(赋值)左侧的类中至少放置了一次。

因此,如果这个类中至少有一行包含: P1="blah bla...",我需要得到是的答案。

这不是特定于类实例的东西,我需要一些遍历类代码的东西(也许代码分析?)帮我侦测这个。

我读到过关于CodeDom的文章,它似乎是构建/解析类文件的东西。我需要的是检查代码并提取出来,而不是构建一个文件。

EN

回答 2

Stack Overflow用户

发布于 2015-03-31 23:58:59

如果不能选择Roslyn,您可以使用反射来获取目标类的所有构造函数和方法(包括getter和setter),然后调用GetMethodBody().GetILAsByteArray()来获取它们的MSIL代码,最后对于找到的每个赋值调用Module.ResolveMember(token)来验证该标记是否表示您正在寻找的PropertyInfo。

票数 1
EN

Stack Overflow用户

发布于 2015-03-31 23:12:40

尝试获取当前的StackTrace。然后,您可以解析给定的数据。

代码语言:javascript
复制
private int t1;
public int T1
{
     get { return t1; }
     set 
     {
         t1 = value;
         Debug.WriteLine(new System.Diagnostics.StackTrace());
     }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29367722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档