1

我正在使用(来自 Nuget 包) Ninject 2.2 和 Fluent NHibernate 1.3(引擎盖下的 NHibernate v3.2)并且我遇到了障碍。

我正在使用 Fluent config 指向我的数据库、映射等:

var fluentConfig = Fluently.Configure()
    (MsSqlConfiguration.MsSql2008.DoNot.UseReflectionOptimizer()
    .ConnectionString(c => c.FromConnectionStringWithKey("ExampleDB")))
    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<ExampleMap>()
    .Conventions.Add(FluentNHibernate.Conventions.Helpers.DefaultLazy.Never()))
    .ExposeConfiguration(x => x
                            .SetProperty("current_session_context_class", "web"))
    .ExposeConfiguration(BuildSchema);

该代码在我的本地机器上运行美化,直到我设置<trust level="Medium" />来镜像我的托管服务提供商,然后它开始出现问题。

问题行是此代码块中的第二行

Bind<Configuration>().ToConstant(fluentConfig.BuildConfiguration());
Bind<ISessionFactory>().ToConstant(fluentConfig.BuildSessionFactory());
Bind<ISession>().ToMethod(x => GetRequestSession(x));

我收到的异常:“...请求'System.Security.Permissions.ReflectionPermission ....失败”类型的权限

有没有人有什么建议?到目前为止,我的调查除了基于旧版本的 Ninject 和 NHibernate 的过时信息或涉及反编译 X 以脱离 Y 的解决方案之外什么都没有发现……我宁愿不这样做!

4

1 回答 1

2

使用中等信任版本而不是 NuGet 中的版本:https ://github.com/ninject/ninject/downloads

于 2012-02-29T16:56:19.410 回答