인터페이스에 인터페이스로 정의 된 객체 속성을 강력하게 입력하려고합니다. 여기 내 샘플인터페이스로 정의 된 속성을 강력하게 입력하려면 어떻게합니까?
이// interfaces
public interface IMyInterfaceA
{
string A { get; set; }
IMyInterfaceB B { get; set; }
}
public interface IMyInterfaceB
{
string B { get; set; }
}
// POCOs
public class pocoOneB : IMyInterfaceB
{
public B { get; set; }
public C { get; set; } // extending the poco with a non-interfaced property
}
public class pocoOneA : IMyInterfaceA
{
string A { get; set; }
pocoOneB B { get; set; } // fails, can I strongly type an interface??
}
public class pocoTwoB : IMyInterfaceB
{
public B { get; set; }
public D { get; set; } // extending the poco with a non-interfaced property
}
public class pocoTwoA : IMyInterfaceA
{
string A { get; set; }
pocoTwoB B { get; set; } // fails, can I strongly type an interface??
}
이 문제는 내가
pocoOneB B { get; set; } // fails, can I strongly type an interface??
또는 인터페이스의 구현에도 불구하고
pocoTwoB B { get; set; } // fails, can I strongly type an interface??
을 할 수 없다, 컴파일러는 내가하지 않았다라고이다 두 poco에 IMyInterfaceA를 올바르게 구현하십시오. 오류가 있음을 이해하지만 인터페이스가있는 속성을 강력하게 입력하는 방법이 있는지 알고 싶습니다.
이 문제를 해결하는 방법 중 하나는 인터페이스 IMyInterfaceA가 인터페이스 IMyInterfaceB의 속성을 모두 정의하고 poco의 범위를 정의하는 것입니다. 그러나 인터페이스를 사용하여 구현 된 속성을 적용하려고합니다.
강하게 poco의 속성을 입력해야하는 주된 이유는 JSON을 사용하여 전선을 소멸시키기 때문입니다.
안내해 주셔서 감사합니다. 당신이 클래스에서 동일한 서명을 할 수 있도록
오류 메시지는 무엇입니까? –
이것이 도움이되는지 아닌지는 잘 모르겠지만 클래스 정의에서 마우스 오른쪽 버튼으로 인터페이스를 클릭하면 인터페이스를 구현할 수있는 옵션이 있습니다. 이것은 interface.property와 같은 인터페이스의 프로퍼티와 메소드를 정의합니다. – WraithNath