В настоящее время я не использую Castle или любой другой DI / IoC, поэтому я не могу комментировать действительность или нет, а также регистрировать статические данные или структуру ...
Сказав это,Похоже, что не должно быть слишком сложно войти из статического метода (в нестатическом классе).Это может быть глупо, но я полагаю, вы могли бы сделать что-то вроде этого:
public class MyClass
{
private ILogger logger = NullLogger.Instance;
private static ILogger staticLogger;
public ILogger Logger
{
get
{
return logger;
}
set
{
logger = value;
if (staticLogger == null)
{
staticLogger = value;
}
}
}
public void MyMethod()
{
logger.Info("Hello from instance method!");
}
public static void MyStaticMethod()
{
staticLogger.Info("Hello from static method!");
}
}
Вероятно, нужно быть осторожным, чтобы не войти в систему со статическим регистратором до того, как будет введен настоящий регистратор.