【发布时间】:2026-01-06 23:15:01
【问题描述】:
public static class Constants
{
public const string Fields_Fax = "FAX";
public const string Fields_DataProtectionPost = "DATAPROTECTIONPOST";
public const string Fields_DataProtectionTel = "DATAPROTECTIONMOBILE";
public const int AddressBookID = 595204;
public static readonly XName PersonXName = "Person";
此类在窗口服务解决方案中。该服务已在本地安装并使用上述值运行。
我接手了这个项目,并在这个类中添加了一些我自己的静态只读 XName 类型。 现在,当我使用该类中的任何属性时,我收到一个错误“'This.App' 的类型初始化程序引发了异常”。
只有 1 个项目,我重新编译了解决方案并重新安装了窗口服务。知道问题出在哪里吗?
例外是:
"The type initializer for 'Constants' threw an exception"
...内部异常是:
"The ' ' character, hexadecimal value 0x20, cannot be included in a name."
...我注释掉了我的更改,它可以正确读取,没有错误。所以我只添加了 1 行,看起来类似于“Person”常量但导致它失败:
public static readonly XName cor_Tel_GeneralXName = "Tel General";
【问题讨论】:
-
不应该是
PersonXName = new XName("Person");吗? -
@reniuz 异常是“'Constants'的类型初始化器抛出异常”......内部异常是-{“'''字符,十六进制值0x20,不能包含在名称中."} ...我注释掉了我的更改,它读取正确,没有错误。所以我只添加了 1 行,看起来类似于“Person”常量但导致它失败... public static readonly XName cor_Tel_GeneralXName = "Tel General";
-
@insanepaul 我很确定您需要将
new构造与所有非本地对象一起使用 - 请参阅我上面的评论 -
@scibuff 那行已经在那里了。我添加了一条导致错误的类似行
-
这些值是否与 IL 中安装的这些值有关,我需要以某种方式重新安装它们?
标签: c# static windows-services constants readonly