首页 > 解决方案 > DisplayAttribute:无法检索属性“名称”,因为本地化失败

问题描述

InvalidOperationException:无法检索属性“名称”,因为本地化失败。类型“Common.SharedResources”不是公共的或不包含名为“Common_From”的公共静态字符串属性。

大家好,我有一个“通用”类库项目,其中包含一个资源文件 (SharedResources.resx) 和一个关联类 (ShareResources.cs),通过为单独的“Web”项目本地化字符串和错误消息,它可以按预期工作,但是我无法获得相同的资源来使用视图模型上的 Display 属性 - 请求视图会引发上面显示的异常。

我在网上发现的每一个类似问题都通过确保类和资源文件是公开的并且“自定义工具”设置为“PublicResXFileCodeGenerator”来解决,但是如下所示,情况已经如此,所以我在有点亏。

查看模型(Web) - 用常规字符串替换键常量也会引发异常。

[Display(ResourceType = typeof(SharedResources), Name = ResourceKeys.Value.Common.From)]
public DateTime? FromDate { get; set; }

SharedResources.cs(通用)

public class SharedResources
    {
        // Intentionally blank.
    }

SharedResources.resx(通用)

在此处输入图像描述

SharedResources.Designer.cs

在此处输入图像描述

SharedResources.resx 属性

在此处输入图像描述

标签: c#asp.net-corelocalizationresx.net-core-3.1

解决方案


推荐阅读