[c#] 개별 dll의 부분 클래스



Answers

아닙니다. 부분 클래스는 순전히 언어 기능입니다. 어셈블리가 컴파일되면 파일이 결합되어 형식을 만듭니다. 파일을 다른 어셈블리에 배포 할 수 없습니다.

그러나 원하는 것을 따라 확장 방법 을 사용하여 필요한 것을 성취 할 수 있습니다.

Question

별도의 DLL에서 부분 클래스에 두 부분 (동일한 네임 스페이스, 같은 클래스 이름)을 가질 수 있습니까?




다른 dll에있는 클래스에 메서드를 추가하려는 경우 확장 메서드를 사용할 수 있습니다. 이 메서드의 단점은 정적 메서드를 추가 할 수 없다는 것입니다.




다른 답변은 불쾌한 "아니오"를 제공하지만이 페이지에 방문하는 사람은 보거나 듣고 싶지 않지만 아직 여기에 언급되지 않은 다른 생각에 시달립니다. 어셈블리 전체에서 부분 클래스가 허용되면 개인이 작성하지 않은 기존 유형에 대한 개인 멤버에 액세스 할 수 있으며 원래 작성자가 의도하지 않은 방식으로 조작 할 수 있으므로 모든 상속 클래스도 위험 할 수 있습니다.

뿐만 아니라 다른 어셈블리 (및 해당 하위 클래스)의 클래스는 다시 컴파일하여 작동하도록해야합니다. 따라서 논리적으로 다른 어셈블리를 통해 클래스를 분할하는 것은 불가능합니다.




Links