몇 가지 공용 클래스와 인터페이스 만 표시하는 많은 내부 기능을 갖춘 C# 라이브러리가 있습니다. 이 코드를 여러 프로젝트에서 공유하고 싶습니다. 각 프로젝트에서 하위 클래스를 사용하여 내부 클래스를 확장해야 할 수도 있습니다.클래스를 만들지 않고 프로젝트간에 C# 코드를 공유합니다.
공통 라이브러리를 만들기 위해 모든 클래스를 공용으로 만드는 아이디어를 좋아하지 않습니다. 나는 그것들을 너무 쉽게 디 컴파일하고 디자인을 깰 수 있다고 생각한다.
소스 코드의 복사본을 만들고 프로젝트간에 이러한 파일을 동기화하는 유일한 방법은 있습니까? 아니면 코드를 공유하고 몇 가지 의도 된 공용 인터페이스와 클래스 만 노출하는 각 프로젝트에 대해 하나의 라이브러리를 얻을 수있는 방법이 있습니까?
나는 비주얼 스튜디오를 컴파일하고 "개인"액세스에 대한 명확한 설명을 위해 2010 년
UPDATE
감사를 사용하고 있습니다. 필자는 여러 입력 라이브러리에 난독 화기를 적용하는 방법을 고려해 볼 수 있다고 생각합니다. 모든 공용 라이브러리는 공개 연결을 모호하게 만듭니다.
디자인 관점에서 볼 때 친구 어셈블리를 사용하는 것이 확실한 것처럼 보입니다.
이렇게하면 디 컴파일로부터 보호를 거의받지 못할 것입니다. 어떤 순진 주의자들은 당신이하려고하는 것을 수행함에있어 OOP 원칙을 확장하고 있다고 말하고 있습니다. 그것은 누출 된 캡슐화입니다. –
액세스 수정자는 디 컴파일에 영향을주지 않습니다. 모든 반사판 응용 프로그램을 사용하여 DLL에서 C# 코드를 추출 할 수 있습니다. 그 면면으로 시간을 낭비하지 마십시오. – Timeout
그럴만 한 이유가 있습니다.이 경우, 여러 입력 라이브러리를 사용할 수 있고 공용 연결을 모호하게 만들 수있는 obfuscator를 사용하는 것이 더 합리적 일 수 있습니다. –