ここでは非常に単純なものがありますが、リフレクションを使用してを含む同じアセンブリから組み込みリソースを取得する利点は何ですか?単に.resxファイルを介してそれを取得する?私はこれをたくさん見ますが、それを取得しないでください - をresxファイルResources.resource
と比較する理由がありますか?マイクロソフトでさえそれはHow to embed and access resourcesです。埋め込みリソースにアクセスするためのリソースファイル(.resx)とリフレクション
正確にはどういう意味ですか:組み込みリソースConfig.xml
を含むアセンブリMyAssembly
があるとします。
public string GetConfigXML()
{
Stream xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyAssembly.Config.xml");
string xml = GetStringFromStream(xmlStream);
return xml;
}
はなぜGetManifestResourceStream()
ときに使用します。
public string GetConfigXML() // returns the content of Config.xml as a string
は、多くの場合、私はリソースを取得するためにリフレクションを使用して、これはこのように実装を参照してください。アセンブリは、文字列として言ったリソースを返すメソッドを実装しMyClass
を持っています次のことができます。
- は、Visual Studioで
MyAssembly
プロジェクトにリソースファイル(Resource.resx
)を追加します。 Config.xml
をリソースの 'Files'に追加します。string xml = Resource.Config;
が、私は内部のファイルを.resxファイルの処理方法Visual Studioのか分からないが、私は中に(それ単にコピーした.resxファイルにリソースを疑う:
Config.xml
のコンテンツを取得しますこの場合は、重複したリソースで終了します)。私はそれが内部的に反射を使用しないと仮定します。なぜなら、このような状況で単に.resxファイルを使用しないでください。
アセンブリーを介して取得することは、カルチャー認識衛星アセンブリの読み込みを行うことがありますが、resxを読み込むと、現在のカルチャに対して正しいものを選択する責任があります。 –