Итак, у меня есть консольное приложение, в котором я использую Autofac.
Я настроил свое консольное приложение следующим образом:
У меня есть класс, который я вызываю ContainerConfig - В этом у меня есть все мои регистрации сборщиков:
public static class ContainerConfig
{
public static IContainer Configure()
{
var builder = new ContainerBuilder();
builder.Register(c => new MatchRun()).As<MatchRun>).SingleInstance();
builder.RegisterType<AuditLogic>().As<IAuditLogic>();
builder.RegisterType<AuditRepository>().As<IAuditRepository>();
builder.RegisterType<ValidationLogic>().As<IValidationLogic>();
return builder.Build();
}
}
Я звонюмое основное приложение выглядит следующим образом:
private static void Main(string[] args)
{
var container = ContainerConfig.Configure();
using (var scope = container.BeginLifetimeScope())
{
var app = scope.Resolve<IApplication>();
app.Run(args);
}
}
Проблема в том, что у меня подключена служба WCF.Это мой AuditRepository.(К вашему сведению - я не касался WCF в течение многих лет, поэтому я забыл большую часть того, что знал).
В настоящее время он создан для создания и утилизации прокси-сервера каждый раз, когда я звоню этому клиенту.Это функции - в основном.
Похоже на это:
public string GetStuff(string itemA, string itemB)
{
try
{
GetProxy();
return _expNsProxy.GetStuff(itemA, itemb);
}
catch (Exception ex)
{
IMLogger.Error(ex, ex.Message);
throw ex;
}
finally
{
// CloseProxyConn();
}
}
Что мне интересно, могу ли я сделать это лучше с Autofac - создание одного экземпляра по сравнению с постоянным открытием закрытия - или я просто сумасшедший?Я знаю, что не совсем правильно задаю этот вопрос - не уверен на 100%, как правильно сформулировать вопрос.
Спасибо