일반적인 인터페이스 클래스의 인스턴스를 주입 형 FunctieModel의 저장소에 대한내가이 모델 클래스가
public interface IBaseRepo<T> where T : ObservableObject
{
void Delete(int id);
T GetItem(int id);
IEnumerable<T> GetList();
bool Update(T model);
bool Insert(T model);
}
특정 인터페이스를
public interface IFunctieRepo : IBaseRepo<FunctieModel>
{}
내 Functie 모델 용 리포지토리 구현 :
주입해야하는 저장소와 함께 작동 할 수 있어야합니다개public class FunctieRepoSql : IFunctieRepo
{...}
내 테스터 클래스 :
public class Tester
{
IBaseRepo<ObservableObject> repo;
public Tester(IBaseRepo<ObservableObject> repo)
{
this.repo = repo;
}
}
이 모두 잘 컴파일합니다. 이제 다른 저장소를 사용하여 테스터 클래스를 인스턴스화해야합니다.
new Tester(new FunctieRepoSql())
여기가 내 문제입니다. 이 오류는
가 FunctieRepoSql
에서 나는 분명히 뭔가를 놓친 거지 IBaseRepo<ObservableObject>
로 변환 할 수 있습니다. 누구나 내가이 일을 어떻게 얻을 수 있는지 단서가있다?
"C#의 분산"에 대한 기사를 찾고 있습니다. 예를 들어, 'IBaseRepo'와 같은 내용이 답이 될 수 있습니다. 좋은 자신을 잘하려고 시도 할 수도 있습니다 :) –
그는'in'이 필요하고'in'은 필요하지 않습니다. –
@Alexei, Preston, 아니 그는 그 둘을 필요로합니다. (반환 유형 및 메서드 매개 변수에서'T ') 따라서 분산은 도움이되지 않습니다. –