2

我的项目在我的网络托管服务提供商上部署时遇到了困难。我在具有“主机级别”信任的共享托管环境中。

我在我的项目中使用了 LINQ,但现在他们刚刚告诉我在他们的共享服务上禁用了反射。我相信需要反射才能在查询中使用变量。

当我在主机级别的信任环境中运行项目时,我得到一个异常:

MethodAccessException:
System.Runtime.CompilerServices.StrongBox`1..ctor(System.__Canon)

有没有人有这方面的经验?任何建议将不胜感激

这段代码失败了:

public override bool ValidateUser(string username, string password) {

   using (var dc = new mcDataContext()) {
      var query = (from c in dc.CF_Clients
                   where c.Client_ID == username
                   select new
                   {
                      c.Client_Password
                   }).FirstOrDefault();

  }
}
4

2 回答 2

0

尝试更换

from c in dc.CF_Clients

from Client c in dc.CF_Clients

或者无论你的类型是什么(在这种情况下,我假设它是一个 Client 对象)。如果您从集合中隐式转换对象,则不必使用反射来访问查询中的属性。

于 2010-06-30T02:40:05.743 回答
0

查询中的所有内容都是公共类中的公共成员吗?

请参阅 http://social.msdn.microsoft.com/forums/en-US/adodotnetdataservices/thread/0dc87db4-c145-456b-a19f-eebc16c09efb/

另一种可能的解决方案:

http://www.nullify.net/Article/332.aspx

于 2010-06-30T02:49:38.570 回答