(流畅)NHibernate使用Ninject初始化IUserType?

时间:2014-12-23 00:55:37

标签: nhibernate fluent-nhibernate

我需要将一个字段序列化为JSON并将其存储在数据库中。为此,我实现了IUserType接口。但是,由于测试目的,我想在构造函数参数中传递一个序列化程序接口。理想情况下,我想通过告诉NH使用Ninject创建我的IUserType实现的实例来实现这一点。这有可能吗?

1 个答案:

答案 0 :(得分:1)

Cfg.Environment.BytecodeProvider.ObjectsFactory负责创建NHibernate使用的对象。您可以实现IBytecodeProvider来注入自己的例子:

class MyBytecodeProvider : NHibernate.Bytecode.Lightweight.BytecodeProviderImpl, IObjectsFactory
{
    public override IObjectsFactory ObjectsFactory
    {
        get { return this; }
    }

    #region IObjectsFactory implementation
    public object CreateInstance(System.Type type)
    {
        // TODO:
    }

    public object CreateInstance(System.Type type, bool nonPublic)
    {
        // TODO:
    }

    public object CreateInstance(System.Type type, params object[] ctorArgs)
    {
        // TODO:
    }
    #endregion
}