문제를 해결하려면 약간 설명해야합니다. 프로젝트를 볼 수 있습니다C# 캡슐화 : 다른 프로젝트의 유형 가져 오기
프로젝트 1 프로젝트 2, 3
프로젝트 2를 볼 수 있습니다 3.
프로젝트 3은 DLL과 다른 앱입니다
나는 3 개 프로젝트가있다.많은 하위 클래스가있는 클래스를 디자인해야했습니다. 하위 클래스에는 모두 기본에서 추상으로 선언 된 메서드가 있으므로 모두 사용해야합니다. 메소드의 코드가 프로젝트와 직접 상호 작용하기 때문에 모든 프로젝트에 배포해야합니다.
추상 기본 클래스가 프로젝트 3에, 서브 클래스는 2 년이며, 1 는 내가 가지고있는 문제가있다 :
public static IEnumerable<Type> GetSubClasses(Type typ)
{
IEnumerable<Type> subclasses =
from type in Assembly.GetAssembly(typ).GetTypes()
where type.IsSubclassOf(typ) && !type.IsAbstract
select type;
return subclasses;
}
내가 노력하고있어 :
이 내가 쓴 방법은 형식의 모든 하위 클래스를 가져 오지만 내가 할 때 현재 프로젝트의 하위 클래스 만 가져옵니다. 예를 들어 project1에서 가져 오려고하면 프로젝트 2의 하위 클래스를 가져 오지 않습니다.
어떻게하면됩니까? 프로젝트 2에서 어셈블리 참조를 얻을 수 있지만 GetAssembly (Type t) 메서드가 없다는 것을 알았습니다. 모든 하위 클래스를 얻었습니다. 그것이 동일하면 나는 거기에서 같은 것을해야했다.
내 두 번째 질문은 더 쉬운 방법이 있습니까? 그것은 많은 프로젝트에서 그러한 클래스들을 가지고있는 "커다란"것이고 아마도 그것들을 하나에 넣는 해결책이있을 것입니다. 내가 말했듯이, 그들이 가지고 있어야하는 메소드의 코드는 자신이 속한 프로젝트와 직접 상호 작용해야합니다.
프로젝트 4를 작성하고 거기에 하위 클래스를 추가하면이를 어떻게 귀하의 목록에 포함시킬 것입니까? – Jodrell
이 함수의 목적은 무엇입니까? – Jodrell
기본 클래스에 '추상'멤버가 필요한 것 같은데, 무엇을 달성하려고합니까? – Jodrell