首页 > 解决方案 > 通过反射判断属性是否由函数创建

问题描述

假设我有一个Foo像下面这样的类:

class Foo
{
    public static int Bar()
    {
        return 1;
    }

    public static int x = Bar();
    public static int y = 2;
}

我想用反射来知道:

  1. x通过函数初始化Bar
  2. y不是通过函数初始化的Bar

有没有办法做到这一点?

标签: c#reflection

解决方案


抱歉,无论如何,您的任何属性都不从您的函数创建的。您是在Bar谈论初始化,还是在何时/何处分配它们?请澄清你的问题。

这里问了一个类似的问题:什么时候在 C# 中初始化静态变量?

编辑

根据新信息,您可以更改访问修饰符或利用[Obsolete]属性:https ://docs.microsoft.com/en-us/dotnet/api/system.obsoleteattribute?view=netframework-4.7.2 来控制或限制创建。


推荐阅读