もっと具体的に言ってみましょう。ASP .Net MVCアプリケーションでいくつかのビュー モデルを作成し、リソースを使用していくつかのフィールドの属性を定義Display
し、リソース フィールド名を間違って入力すると、以下のスクリーン ショットのように赤色で強調表示されます。
Description
以下のように表示する現在の Model プロパティに関するより詳細な情報を提供するカスタム属性を作成しました。
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 属性の場合のように赤色で強調表示されないことです。
Google で検索しようとしましたが、Google が私を正しく理解しているかどうか、または Google に自分自身を正しく表現しているかどうかわかりません。テキスト エディタでそのようなタイプのエラーを強調表示するにはどうすればよいですか? Resharper で Visual Studio 2012 を使用しています。
PS「なぜ使わないのです[Display(... Name = "Name", Description = "Description")]
か?」のような質問を避けるために。この属性に関連付けられているカスタムHtml.DescriptionFor()
ヘルパー メソッドがあり、元の MVC のものをオーバーライドまたは変更するHtml.DisplayDescription()
ことは、内部チームの慣行では推奨されていません。