오브젝트 유형에 따라 인터페이스를 유추 할 수있는 방법이 있습니까? , 내가하고 싶은 무엇컴파일 타임에 유형별로 인터페이스 반입
public interface IPerson
{
string FirstName
{ get; set; }
string LastName
{ get; set; }
}
는 일반적인 프록시 공장을 만들 수있다 : 내가 좋아하는 것
public class Person
{
public string FirstName
{ get; set; }
public string LastName
{ get; set; }
}
이 인터페이스를 추론 할 수 있도록 : 예를 들어 나는 다음과 같은 객체가 있다면 reflection.emit을 사용하면 컴파일 타임에 유추 된 인터페이스를 준수합니다. 나는 대신 모든 객체의 속성을 가진 동적 객체를 반환 할 수 있다는 것을 알고 있지만, 런타임과 컴파일시 모두 처리됩니다.
편집
내가 달성하기 위해 노력하고있어에 대한 조금 더 설명. 이 같은 서명 뭔가 방법이있는 프록시 클래스를 만들려면 :
public T GetProxyFor<U>(U SomeObject);
사용자가 GetProxyFor (사람들을)를 호출하고, 사람들의 속성이 객체를 구현하는 것 PeopleProxy 개체를 다시 얻을 수 있습니다 그 방법 (또는 다른 객체). 그런 식으로이 코드를 사용하는 사람은 PeopleProxy.LastName을 호출 할 수 있으며 성공적으로 컴파일되지만 PersonProxy.Age를 호출하면 존재하지 않기 때문에 컴파일 할 때 오류가 발생합니다.
나는 Reflection과 방출에 상당히 익숙하다. 그래서 내가 원하는 것은 가능하지 않을 수도있다.
목표는 무엇입니까? 해당 인터페이스를 코드 파일로 생성하는 코드 생성기를 작성하려고합니까? 아니면 실행중인 코드 내부에서 인터페이스를 구현하려고합니까? 또는 다른 것? –
나는 이것을 위해 T4를 추천한다. –
@JoeEnos, 원래 게시물에 수정 사항을 추가하여 제 질문에 대해 자세히 설명했습니다. – divinebovine