var servers = new List<IChecker> {
//Server1
new DatabaseSystem { ServerName = "ANTIVIRUS" },
new DatabaseSizes { ServerName = "ANTIVIRUS"},
new DiskBackup { ServerName = "ANTIVIRUS"},
new SqlServerEventLog { ServerName="ANTIVIRUS"},
new DiskSystem { ServerName="ANTIVIRUS"},
//Server1
new DatabaseSystem { ServerName="SEJKG-S-DB01" },
new DatabaseSizes { ServerName = "SEJKG-S-DB01"},
new DiskBackup { ServerName = "SEJKG-S-DB01"},
new SqlServerEventLog { ServerName="SEJKG-S-DB01"},
new DiskSystem { ServerName="SEJKG-S-DB01"},
};
var builder = new ContainerBuilder();
builder.RegisterInstance(notifiers).As<IList<INotifier>>();
builder.RegisterInstance(servers).As<IList<IChecker>>();
builder.Register(c => new ServerChecker(c.Resolve<IList<IChecker>>(), c.Resolve<IList<INotifier>>()));
return builder.Build();
我有我应该怎么注册我的“,其中server =新列表{..}“的集装箱生成器有问题。我iChecker的列表作为参数传递到ServerChecker。这么多我就一直能解决,而不是名单本身,而是我必须有外,服务器的通常的名单要大得多。如何在新列表<IChecker>注册Autofac ContainerBuilder
我将ServerChecker更改为ServerChecker(IEnumerable Checker,IEnumerable Notifiers)。然后进行更改
builder.RegisterInstance(new DiskSystem { ServerName = "SEFWG-FLEFSH" }).As(); builder.RegisterType();
– 2012-04-26 08:31:54如果解决方案为您工作,请将此标记为答案。 :) – 2012-04-26 15:19:08