나는이구현 인터페이스는
public interface ICustomerEx
{
void Load(DataRow row);
}
public class Customer:ICustomerEx
{
public string Name{get;set;}
public string Address{get;set;}
void Load(DataRow row)
{
Name = (string)row["name"];
Address = (string)row["address"];
}
}
지금은 클래스 라이브러리로이를 구축하고 참고로 다른 프로젝트에 추가하고있어 같은 인터페이스와 클래스가 있습니다. 그 프로젝트에는 UiCustomer라는 클래스가 있습니다. ICustomerEx 이 클래스에는 자신의 속성이 있으며 해당 load 메서드에서 해당 속성을로드합니다.
public class UiCustomer:ICustomerEx
{
public string Telephone{get;set;}
void Load(DataRow row)
{
Telephone=(string)row["tele"];
}
}
지금은 의존성 삽입 (Dependency Injection)처럼 사용하여 자신의 특성을의로드 한 후 UI 프로젝트의 속성을로드하는 Load 메서드 내 첫 번째 클래스의 (클래스 라이브러리로 그 빌드)를 구현할 수있는 방법이있다.
예 :
public class Customer:ICustomerEx
{
public string Name{get;set;}
public string Address{get;set;}
void Load(DataRow row)
{
Name = (string)row["name"];
Address = (string)row["address"];
//Call load methods in other places that Interface implemented
}
}
답장을 보내 주셔서 감사합니다. 내 요구 사항은 당신의 대답과 조금 다릅니다. 이 고객 인스턴스는 참조 dll 측면에서 만들어야합니다. 즉 고객 클래스가있는 동일한 어셈블리의 클래스에서 가져옵니다. 내 요구 사항은 공통 클래스 라이브러리를 만들어 고객 인스턴스를 만들고로드하는 것입니다. 그 외의 다른 어셈블리를 참조 할 때 그것은 참조 된 어셈블리에서도 자신의 속성을로드 할 수 있어야합니다. – Snj
@Snj :이를 수행하는 방법에 대한 의견을 포함하도록 답변을 업데이트했습니다. – ChaseMedallion
당신의 아이디어에 감사드립니다. 당신의 방식대로, Cust 인스턴스가 생성 될 때, 그것은 '전화'멤버만을 가지고 있습니다. 고객 클래스에서 보면 하위 클래스 멤버 만 포함됩니다. '이름', '주소'와 같은 고객의 회원은 이에 포함되지 않습니다. – Snj