IAccountService라는 인터페이스가 있습니다. 또한 제품 및 패키지 등의 인터페이스도 동일합니다.일반 인터페이스를 만들 수 있습니까?
public interface IAccountService
{
void AddOrUpdate(Account account);
void Delete(Account account);
bool DoesTableExist();
Account Get(Account account);
Account Get(string pk, string rk);
IEnumerable<Account> Get();
IEnumerable<Account> Get(string pk);
string GetOptions(string pk, string rk);
IEnumerable<AccountDetail> ShowDetails(ref string runTime);
IEnumerable<AccountSummary> ShowSummary(ref string runTime);
void ValidateNoDuplicate(Account account);
void ValidateNoProducts(Account account);
}
일반 메서드를 만들었지 만 일반 인터페이스를 만들 수도 있습니다. 그렇다면 나는 어떻게 그것을 부를 것이고, 내가 그것을 어떻게 변형 시켜서 일반화 할 수 있을까? 다음과 같이 현재 나는이 인터페이스를 사용
public class AccountService : BaseService, IAccountService
업데이트 모든 제안을 한
감사합니다. 내가 여전히 문제가있는 한 가지는 AccountDetail 및 AccountSummary 클래스입니다. 아마 하위 클래스가되어야한다고 생각합니다. 그러나 어떻게 그 이름을 처리 할 수 있습니까? 클래스 이름을 가져 와서 Detail을 추가 한 다음 인터페이스에서 사용하십시오. 가능한가요?
업데이트 2
여기에 세부 사항 및 요약 클래스의 예 :
public class AccountDetail
{
public string Title { get; set; }
public string Product { get; set; }
}
public class AccountSummary
{
public string Title { get; set; }
public Int32? ProductCount { get; set; }
public string PartitionKey{ get; set; }
public string RowKey { get; set; }
public DateTime? Modified { get; set; }
public string ModifiedBy { get; set; }
}
위 클래스가보고를 위해 사용된다. 아마 그들은 모델 저장소의 일부가되어서는 안된다고 생각하고 있습니다. 어쩌면 그들은 다른 장소에 있어야합니다.
ref 주석에 관해서.
_account.ShowDetails(ref runTime);
ShowDetails의 출력은 세부 사항의 목록입니다 및 런타임 참조가이 보고서를 실행하는 데 걸리는 시간으로 업데이트됩니다 : 심판은 내 컨트롤러에서 나는 다음과 같은 방법을 호출하기 때문에이있다.
이러한 매개 변수는 'ref'가 아니어야합니다. – SLaks
Re : 업데이트 : 불가능합니다. 대답에 기존 접근법 중 하나를 사용해야합니다. – SLaks