2010-06-30 4 views
2

У меня возникли трудности с моим проектом и развертыванием его на моем веб-хостинге. Я нахожусь в среде совместного размещения с доверием «Уровень хозяина».Отражение LINQ с доверием уровня хоста

Я использовал LINQ в своем проекте, но теперь они только что сказали мне, что Reflection отключен в своих общих службах. Я считаю, что требуется отразить необходимость использования переменных в запросах.

Когда я запускаю проект в целевой среде на уровне хоста, я получаю исключение:

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(); 

    } 
} 
+0

Вам не нужно разрешение отражения, чтобы иметь возможность использовать LINQ, вы должны опубликовать фактический код, который вызывает проблему. –

+0

Похоже, что вы не можете использовать переменные в выражениях linq? – Mike

+0

Я также удалил «var» и заменил его на соответствующие типы, однако это не имеет никакого значения. Кажется, что проблема с переменной имени пользователя. – Mike

ответ

0

Все ли в запросе открытый член публичного класса?

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

Другое возможное решение:

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

+0

Да, все открыто, и все равно делает то же самое – Mike

+0

Понятно, что другие столкнулись с этим. Я добавил ссылку на сообщение в блоге, которое имеет другое решение. Не уверен, что у вас будут права на это. – TrueWill

0

Попробуйте заменить

from c in dc.CF_Clients 

с

from Client c in dc.CF_Clients 

или любой другой ваш тип является (в данном случае Я предположил, что это объект Client). Если вы неявно бросаете объекты из коллекции, тогда не нужно использовать отражение для доступа к свойствам в запросе.

+0

Это не имело никакого эффекта. Я все еще получаю то же сообщение на одном и том же фрагменте кода – Mike

+0

Вынимая переменную имени пользователя в моем запросе и заменяя ее на String.Empty, и код работает. – Mike

Смежные вопросы