Я не думаю, что это будет возможно, так как вам нужно было бы подключиться к конвейеру / процессу создания компонента NH, который, AFAIK, не всегда доступен.
Вы можете использовать внедрение свойств с«локальный по умолчанию».Это позволит вам зависеть от абстракции ISerializer
и заменять ее при необходимости, возможно, тестируя, но полагаться на конкретный тип по умолчанию в среде, которая не поддерживает IoC.
internal class MyUserType : IUserType
{
private static ISerializer _serializer = new ConcreteSerializer();
public JsonShippingDetailsUserType()
{
}
public ISerializer Serializer { get; set; }
}
Примечание: этодействительно наивная реализация внедрения свойств.Если вы воспользуетесь этим решением, вам нужно «укрепить» код.В книге Д.И. Симанна DI есть отличный пример.