길게 나타날 수도 있지만 .NET의 유연성은 절대로 나를 놀라게하지 않으므로 여기로갑니다..NET 어셈블리 꾸미기
공통 기본 클래스에서 파생 된 클래스 유형에 대한 어셈블리 집합을 검색해야하는 MVC 응용 프로그램을 개발 중입니다.
즉 ActivityBase에서 파생 된 활동 유형을 가진 여러 어셈블리가 있습니다. 이러한 어셈블리는 특정 디렉터리에 배치됩니다. 그들은 마치 플러그인과 같습니다. 런타임에 동적으로로드해야하기 때문에 몇 가지 종속성도 필요합니다 (분리 할 수있는 편리한 방법을 알아 내지 못하면이 문제도 해결할 수 있습니다.)
이 디렉터리의 모든 .DLL 파일을 반복하고, 어셈블리를로드하고, 어셈블리의 모든 형식을 반복하여 ActivityBase에서 파생 된 형식을 찾는 코드가 있어야합니다.
잘 작동합니다. 그러나 일부 종속성에는 수천 가지 유형이 있고 성능 문제가 발생하기 때문에 활동이없는 어셈블리를로드하고 검색하는 것을 피하고 싶습니다.
그래서 내 질문에 파일 명명 규칙 이외의 다른 방법으로 "장식"또는 쉽게 자동화 할 수있는 작업 어셈블리임을 나타내는 데이터 형식의 일부 유형으로 표시하는 것입니다 빌드시 및 런타임시 쉽게 읽을 수 있습니까?
이 문제를 해결하기위한 다른 제안 사항도 환영합니다.
[AttributeUsage(AttributeTargets.Assembly)]
public class ActivityAssemblyAttribute : Attribute
{
}
그런 다음이 속성에 필요한 어셈블리를 장식 :
사용자 지정 어셈블리 특성은 무엇입니까? http://stackoverflow.com/ 질문/1936953/custom-assembly-attributes? – nemesv
특성 솔루션에 대한 과도한 특성 자체를 사용하기 때문에 (어떤 식 으로든) [Microsoft 확장 프레임 워크] (http://msdn.microsoft.com/en-us/library/dd460648.aspx) - MEF를 사용하면 가져올 수 있습니다 특정 유형/구현의 어셈블리. – pasty
그 반가웠다, 잘 모르겠지만 MEF는 아마도 전반적인 응용 프로그램 디자인에 도움이 될 수 있다고 들었으므로 나는 그것에 대해서도 살펴볼 것입니다. – Gerald