У меня возникли проблемы с тем, чтобы мой статический основной метод хорошо играл с моим внутренним кодом.Использование нестатического кода со статическим основным методом
Вот бэкенд материал:
public interface ITicketGenerationService
{
string CreateTicket(DateTime begin, DateTime end);
}
public class TicketGenerationService : ITicketGenerationService
{
public static IRepository<Ticket> Repository { get; set; }
public TicketGenerationService(IRepository<Ticket> repository)
{
Repository = repository;
}
public string CreateTicket(DateTime begin, DateTime end)
{
//do stuff with Repository
//return status string to Main method
}
}
Вот где начинается моя консольное приложение:
public class TicketMain
{
public ITicketGenerationService TicketGenerationService { get; set; }
static void Main(string[] args)
{
var priorityOneTickets = TicketGenerationService.CreateTicket(begin, end);
}
}
Так что я сначала получаю эту ошибку:
An object reference is required for the non-static field, method, or property 'TicketMain.TicketGenerationService'
Если изменить CreateTicket к статическому электричеству , Я получаю еще одну ошибку:
TicketGenerationService does not implment interface member ITicketGenerationService.CreateTicket(DateTime, DateTime). ITicketGenerationService.CreateTicket(DateTime, DateTime) cannot implement an interface member because it is static.
Если я пытаюсь добавить это:
var ticketingService = new TicketGenerationService();
к основной методе, я боюсь, что будет беспорядок с моей инъекцией зависимостей (autofac).
Я понимаю ошибки, но я не могу сделать все статичным, и я боюсь, что если я начну создавать экземпляры, я потеряю все свои данные, которые получаю через инъекцию зависимости.
Есть ли вообще вокруг этого?
Спасибо!