Как вы создаете простой Resendver Dependency Resolver без использования каких-либо встроенных или библиотек, таких как Autofac, Ninject и т.д.
Это был мой вопрос для интервью.
Я написал этот простой код, и они сказали, что он выглядит не очень хорошо. Его как очень жестко закодированная идея.
public interface IRepository { }
interface IDataProvider
{
List<string> GetData();
}
public class SQLDataProvider : IDataProvider
{
private readonly IRepository _repository { get; set; }
public SQLDataProvider(IRepository repository)
{
_repository = repository;
}
public List<string> GetData()
{
return new List<string> { "" };
}
}
public class MockDataProvider : IDataProvider
{
public List<string> GetData()
{
return new List<string> { "" };
}
}
class Program
{
static void Main(string[] args)
{
string targetClass = "SQLDataProvider";
//Here i need to supply IRepository instance too
IDataProvider dataProvider =
(IDataProvider)Activator.CreateInstance(typeof(IDataProvider), targetClass);
}
}
Какой лучший код я делаю и поставляю экземпляр другого объекта для параметра конструктора?