reflexión LINQ con Host nivel de confianza
-
01-10-2019 - |
Pregunta
Tengo problemas con mi proyecto y su despliegue en mi proveedor de alojamiento web. Estoy en un entorno de alojamiento compartido con "Host Nivel" confianza.
Tengo LINQ usado en mi proyecto, pero ahora que me acabas de decir que la reflexión está deshabilitado en sus servicios compartidos. Creo que la reflexión es necesaria para poder utilizar variables dentro de las consultas.
Al ejecutar el proyecto en el entorno de nivel de host de confianza, me sale una excepción:
MethodAccessException:
System.Runtime.CompilerServices.StrongBox`1..ctor(System.__Canon)
¿Alguien tiene alguna experiencia en esta área? Cualquier sugerencia sería muy apreciada
Se está fallando en este código:
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();
}
}
Solución
¿Está todo en la consulta de un miembro del público en una clase pública?
Otra posible solución:
Otros consejos
Trate de reemplazar
from c in dc.CF_Clients
con
from Client c in dc.CF_Clients
O sea cual sea su tipo es (en este caso, supuse que es un objeto de cliente). Si lanzas implícitamente los objetos de la colección, entonces no debería tener que utilizar la reflexión para el acceso a las propiedades de la consulta.