C#에서 SqlConnection 및 AdomdConnection 개체로 작업하고 있습니다.두 개의 유사한 클래스 함수를 C#의 한 클래스로 래핑 할 수 있습니까?
SqlConnection은 DbConnection, ICloneable에서 생성됩니다.
AdomdConnection은 다음과 같이 구성됩니다. 구성 요소, IDbConnection, IDisposable, ICloneable.
일반적인 인터페이스 나 클래스 유형을 사용하여 전달할 수 있기를 기대했지만 공통된 유형을 공유하지 않기 때문에 옵션으로 보이지 않습니다.
그들은 둘 다 비슷한 메소드를 가지고 있습니다.하지만 둘 중 하나를 호출하기 위해 로직을 작성하려고합니다. 그 중 하나를 자신의 클래스로 랩핑 한 다음 그 클래스를 호출하여 기본 유형.
public class ConnectionWrapper
{
protected object _Conn;
public ConnectionWrapper(object Conn)
{
_Conn = Conn;
}
public void Open()
{
if(_Conn is SqlConnection) { ((SqlConnection)_Conn).Open(); }
else if(_Conn is AdomdConnection) { ((AdomdConnection)_Conn).Open(); }
}
}
하지만 도움이되지만 그것을 할 수있는 더 좋은 방법은 없는지 궁금 할 수 없습니다
처음에, 나는 이런 식으로 뭔가를 사용할 수 있다고 생각.
더 읽기 쉬운 방법이 될 TypeMap 클래스를 보았습니다 (298976 참고).하지만 리턴 값을 사용하는 방법을 알 수는 없지만 더 좋은 방법이 있는지 궁금해합니다. 그것을하기 위해.
당신이 제네릭으로 해결할 수있는 일처럼 보이는 오브젝트를 모두 처리 할 수있는 구현합니다. – workmad3
하지만 두 연결 클래스가 이미 동일한 인터페이스를 구현할 필요는 없습니다. –