0
私は統一に8時間あり、すでにいくつかのことを考え出していますが、これで角度を見つけることはできません。私はロガーとResourceMaを振る舞うしたい他の解決されたタイプのパラメータとしてのユニティ使用の解決済みタイプ
public class ResourceManager : IResourceManager
{
public ResourceManager(ILogger logger, string path)
{
Logger = logger;
Path = path;
}
public ILogger Logger { get; set; }
public string Path { get; set; }
}
Futhermore
public class Logger : ILogger
{ }
し、最終的に
public ResourceManagerController(ILogger logger, IResourceManager imageResourceManager)
{}
:私はIResourceManager
public interface IResourceManager
{
ILogger Logger { get; set; }
string Path { get; set; }
}
と対応するタイプですシングルトンのようなネイガー。私はIResourceManagerにILoggerが存在しなくても動作するようにしましたが、 "デフォルトのコンストラクタはありません"という例外が出ています。
は、これまでのところ私が持っている:
public static void Register(HttpConfiguration config)
{
var container = new UnityContainer();
container.RegisterType<ILogger, Logger>("DefaultLogger", new ContainerControlledLifetimeManager());
container.RegisterType<IResourceManager, ResourceManager>("imageResourceManager", new ContainerControlledLifetimeManager(),
new InjectionConstructor(new ResolvedParameter<ILogger>("DefaultLogger"), "basePath"));
config.DependencyResolver = new UnityResolver(container);
// Web API routes ...
}
どのように私は成功したResourceManagerControllerイストのインスタンス化との両方Logger
とResourceManager
がシングルトンとして使用されているように、私のタイプを登録する必要がありますか?