我正在使用(来自 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 的解决方案之外什么都没有发现……我宁愿不这样做!