development

별도 dll의 부분 클래스

big-blog 2020. 6. 14. 09:41
반응형

별도 dll의 부분 클래스


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


에서 MSDN -Partial 클래스 및 방법 :

동일한 유형의 일부인 모든 부분 유형 정의는 동일한 어셈블리 및 동일한 모듈 (.exe 또는 .dll 파일)에서 정의해야합니다. 부분 정의는 여러 모듈에 걸쳐있을 수 없습니다.


아니요. 부분 수업은 순전히 언어 기능입니다. 어셈블리가 컴파일되면 파일이 결합되어 유형을 만듭니다. 파일을 다른 어셈블리로 펼칠 수 없습니다.

그러나 수행하려는 작업에 따라 확장 방법사용 하여 필요한 작업을 수행 할 수 있습니다.


불가능합니다. 어셈블리가 컴파일되면 클래스를 완료해야합니다.


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


다른 답변이이 페이지에 방문하는 사람이보고 싶거나 원하지 않는 불쾌한 "아니오"를 제공하지만, 아직 여기에 언급되지 않은 다른 생각에 감동했습니다. 어셈블리에서 부분 클래스가 허용 된 경우, 자신이 작성하지 않은 기존 유형의 개인 멤버에 액세스하여 원래 작성자가 의도하지 않은 방식으로 조작 할 수 있으므로 모든 상속 클래스의 기능이 손상됩니다. 너무.

뿐만 아니라 다른 어셈블리 (및 해당 자식)의 클래스를 다시 컴파일해야 작동 할 수 있습니다. 따라서 논리적으로 클래스를 다른 어셈블리로 분할 할 수 없습니다.


문제는 왜 다른 어셈블리에서 부분 클래스를 만들고 싶습니까? 어셈블리 전체에서 추상 클래스와 인터페이스를 정의 할 수 있습니다.


아마도 자신의 라이브러리 내에, 3 부 라이브러리의 클래스 주위에 래퍼 클래스를 만들고 싶을 것입니다. 그런 다음 랩퍼 클래스에 기능을 추가하십시오.

참고 URL : https://stackoverflow.com/questions/3858649/partial-classes-in-separate-dlls

반응형