6

以下をUnityにロードできるようにしたいと思います。

UnityContainer.RegisterType<ClientRegistrationVM, ClientRegistrationVMDesign>();

XMLファイルを介してロードする。

これが私がしたいことのいくつかの疑似コードです。

FileStream unityMappings = new FileStream(@".\UnityMappings.xml", FileMode.Open)
UnityContainer.CreateFromXML(unityMappings);
unityMappings.Dispose();

また、UnityMappings.xmlファイルには、タイプが含まれるマッピングとdllが含まれます。

Unityで私が望んでいることは可能ですか?誰かがこれを以前にやったことがありますか?

4

1 に答える 1

8

Unity で XML 構成を使用できます。設計時構成 (XML) と実行時 (コード) 構成を混在させることもできます。

ただし、設計時構成は を使用し、構成UnityConfigurationSectionの読み込みはこれを介してのみサポートされるため、別の (たとえば、app.config または web.config ではない) ファイルに構成を含める場合は、もう少し作業を行う必要があります。

幸いなことに、次のドキュメントのサンプルを見つけることができます:代替ファイルからの構成の読み込み セクション:

using System.Configuration;

var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = "unity.config" };

Configuration configuration =
    ConfigurationManager.OpenMappedExeConfiguration(fileMap,                  
                                                    ConfigurationUserLevel.None);

var unitySection = (UnityConfigurationSection)configuration.GetSection("unity");

var container = new UnityContainer().LoadConfiguration(unitySection);
于 2012-06-01T22:23:42.103 に答える