내 어셈블리에 많은 진입 점이 있으며이 어셈블리의 다른 코드를 실행하기 전에 AppDomain마다 한 번 실행되는 초기화 코드가 필요합니다. 가장 좋은 방법은 무엇입니까?전체 어셈블리의 정적 생성자
내가 볼 수있는 한 가지 해결책은 정적 생성자를 사용하여 클래스를 만들고 여기에서 얻은 모든 진입 점을 상속받는 것입니다. 이런 식으로 뭔가 :
public class Initializer
{
static Initializer()
{
EnsureInitialized(); // Calls initialization code once and only once
}
}
public class EntryPointOne : Initializer, IEntryPoint
{
// Some code here
}
public class EntryPointTwo : Initializer, IEntryPoint
{
// Some code here
}
// etc.
이 날 모든 진입 점에서하지만이 가능 항상없는 다중 상속하지 않고 보일러 플레이트 정적 생성자를 작성하지 않도록 할 수 있습니다. 다른 더 나은 옵션을 생각해 볼 수 있습니까?
http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyload.aspx –
"어셈블리 당 한 번"또는 "AppDomain 당 한 번"코드를 실행할지 확인하십시오. AppDomain에는 많은 어셈블리가있을 수 있으며 어셈블리에 따라 어셈블리간에 공유 될 수도 있습니다 (한 번만로드 됨). – Manfred