You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core静态Guid常量初始化报错求助

解决Guid格式引发的TypeInitializationException错误

问题现象

在Core项目数据预处理环节触发错误:

System.TypeInitializationException:“ERP.Core.Constants.CoreDefaultValues的类型初始值设定项引发异常”
底层异常:FormatException:Guid应包含32位数字加4个短横线(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。

数据种子代码引用CoreDefaultValues类的Guid常量,尝试将Guid转为"D"格式重新实例化后问题仍未解决。相关代码如下:

数据种子代码

builder.HasData(new CashFlowItem
    {
        Id = CoreDefaultValues.DefaultExpenseCashFlowItemId,
        Name = "Income",
        Description = "Income",
        BelongTo = BelongTo.OperatingActivity,
        ReferenceType = ReferenceType.CatalogCashFlowItem
    }, new CashFlowItem
    {
        Id = CoreDefaultValues.DefaultExpenseCashFlowItemId,
        Name = "Expense",
        Description = "Expense",
        BelongTo = BelongTo.OperatingActivity,
        ReferenceType = ReferenceType.CatalogCashFlowItem
    });

CoreDefaultValues类代码(示例)

public static class CoreDefaultValues{
  public static Guid DefaultIncomeCashFlowItemId = new("a0ce69fc-dac3-4d05-8084-82edb1478be6");
    public static Guid DefaultExpenseCashFlowItemId  = new("CA32B849-C4FA-476D-AC29-D6EFE2848F74");
}

问题根源

CoreDefaultValues完整类中部分Guid字符串存在空格、多余符号等格式问题,不符合Guid的标准格式要求,导致类在初始化时触发FormatException,进而引发TypeInitializationException。

解决步骤

  • 全面检查CoreDefaultValues类中所有Guid字符串,确保每个字符串严格匹配xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx格式,彻底移除空格、换行、额外符号
  • 验证Guid有效性:可使用Guid.TryParse(guidString, out var validGuid)方法批量测试所有Guid字符串,替换无效项
  • 无需转换为"D"格式:Guid构造函数本身支持标准带短横线的格式,格式转换无法解决根源的无效字符串问题

内容的提问来源于stack exchange,提问作者hans fridrech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:02:42