让我更具体一点。当我在ASP .Net MVC应用程序中创建一些视图模型并使用资源为某些字段定义Display
属性时,如果我错误地输入了资源字段名称,我会在下面的屏幕截图中将其突出显示为红色:
我创建了自定义Description
属性以提供有关当前模型属性的更多详细信息,如下所示:
using System;
using System.Resources;
using System.Web.Mvc;
namespace ...
{
public class DescriptionAttribute : Attribute, IMetadataAware
{
public string Description { get; private set; }
public Type ResourceType { get; set; }
public string Name { get; set; }
public void OnMetadataCreated(ModelMetadata metadata)
{
if (ResourceType == null) return;
var resourceManager = new ResourceManager(ResourceType);
metadata.Description = resourceManager.GetString(Name);
}
}
}
但是,问题是,当我在定义此属性时使用不存在的资源字段名称时,我不会像使用 Display 属性那样将其突出显示为红色。
我试图用谷歌搜索,但我不确定谷歌是否正确理解了我,或者我是否正确地向谷歌表达了自己。我应该怎么做才能让文本编辑器为我突出显示此类错误?我将 Visual Studio 2012 与 Resharper 一起使用。
PS为了避免诸如“你为什么不使用[Display(... Name = "Name", Description = "Description")]
?”之类的问题。我会说我有自定义的Html.DescriptionFor()
辅助方法,它与这个属性相关联,并且Html.DisplayDescription()
我们内部团队的做法不建议覆盖或更改原始 MVC 的方法。