C# c中的类型初始值设定项异常#

C# c中的类型初始值设定项异常#,c#,.net,gettext,C#,.net,Gettext,我有一个类库,其中包含一些属性的静态类util 我将Utils类中的一个属性调用到我的控制台应用程序中,得到了这个错误。 下面是Utils类的一个小示例 public static class Utils { public static int CurrentEmpId = -1; public static int CurrentUserId { get { if (HttpContext.Current != n

我有一个类库,其中包含一些属性的静态类util

我将Utils类中的一个属性调用到我的控制台应用程序中,得到了这个错误。 下面是Utils类的一个小示例

public static class Utils
{
    public static int CurrentEmpId = -1;
    public static int CurrentUserId
    {
        get
        {
            if (HttpContext.Current != null)
            {
                 if(HttpContext.Current.Session["CurrentUserId"] == null)
                 {
                     HttpContext.Current.Session["CurrentUserId"] = GetCurrentUser();
                     return Int32.Parse(HttpContext.Current.Session["CurrentUserId"]);
                 }
                 else
                 {
                     return Int32.Parse(HttpContext.Current.Session["CurrentUserId"]);
                 }
            }

            return -1;
        }
    }
    //this is making call to a static Method in a static Class called _
    public static string RowHeader = _.T("Some Header");
}
当我尝试在控制台应用程序中获取CurrentUserId属性时,会出现异常。我注释掉了公共静态字符串RowHeader=uu.T(“Some Header”);代码和异常都消失了。在这两种情况下,我都没有编译器或构建错误

“_”命名类是经过一些修改的类:


我的问题是,为什么CurrentUserId属性因为行标题1而引发异常?

要回答您的问题,可以在发生第一个类引用时计算所有静态成员。(这是一种轻描淡写和过于简化的说法)它取决于.NET版本、静态构造函数的存在、惰性变量等。但在这种情况下,您可能遇到了问题,对成员的第一次引用也会初始化其他成员,其中一个会导致异常


对于错误,请检查类型初始值设定项异常的InnerException属性,以获取确切错误的详细信息。这是错误的最佳指示。

请先尝试设置
\uResourceCulture

您能否提供一个很好的理由,说明您的问题与许多类似的问题(如related)不同?(如果静态构造函数/字段初始值设定项抛出than whole type无法初始化)您的“少量修改”可能会引起兴趣…@Dunken这些修改是类的名称更改,它已更改为静态。不确定它为什么会导致崩溃。感谢您的解释这是我一直在寻找的答案。感谢您的回复这可能会有助于解决导致异常的问题。我得去看看。