문제

메타 데이터를 저장하기 위해 사용자 정의 속성을 사용하는 경우 인터페이스를 꾸미는 클래스가 속성에 동일한 데이터가 있다고 가정 할 때 인터페이스를 장식하는 것이 가장 좋습니까?

업데이트: 기본적으로 프로젝트에 대한 사용자 정의 데이터 저장 메커니즘을 작성하고 있으며 객체는 저장되는 다양한 테이블을 나타냅니다. 사용자 정의 속성은 데이터 세트의 어떤 테이블을 해당 클래스의 객체를 저장하는 데 사용되는지를 지정하고 다음과 관련된 테이블을 식별하는 데 사용됩니다.

따라서 속성을 인터페이스에 넣으면 이것이 더 명확한 접근법입니까, 아니면 인터페이스를 혼란스럽게하고 데이터 자체에 더 성가 시게 만드는가?

도움이 되었습니까?

해결책

시나리오에 따라 다릅니다. 예를 들어 WCF는 운영 계약의 인터페이스를 장식합니다.

그러나, 당신이 이야기 할 것이라면 사물 (인터페이스 자체 대신) 특히 클래스가 명시 적 인터페이스 구현을 사용하는 경우 코드를 호출하여 인터페이스 메타 데이터를 보유하는 것이 고통 스러울 수 있습니다.

더 많을 것입니다 흔한 수업을 장식하려면, 그것은 똑같은 질문이 아닙니다.-P

속성이 실제로 특정 인 경우 상호 작용 (인스턴스가 아님), 괜찮아 - 인터페이스를 장식하고 typeof(IFoo) 그러나 코드가 속성에 대한 유형 당 값을 설정할 수있을 것으로 예상하면 클래스 수준에 있어야합니다.

시나리오는 무엇입니까?

다른 팁

인터페이스가 메타 데이터와 관련이 있는지 여부에 따라 다릅니다.

interface IRunnable
{
    void Run();
}

class Test : IRunnable
{
    public void Run() { }
}

이 예에서는 인터페이스의 의도와 관련된 경우 속성을 인터페이스에 넣는 것이 합리적입니다. 속성이 모든 구현에 적용 가능한 경우 속성을 인터페이스에 넣으십시오.

그러나 속성이 "Runnability"와 관련이 없다면 IRunnable 클래스의 CLR이 아닙니다. 그런 다음 속성을 클래스에 넣습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top