llamar a un ensamblado de C # desde un informe en los servicios de informes
-
06-07-2019 - |
Pregunta
Agregué una referencia a un ensamblaje personalizado en un informe de Report Services (2008). Funciona muy bien cuando llamo desde un cuadro de texto (por ejemplo, = Assembly.Class.Function ()), pero cuando lo envuelvo en un bloque de código personalizado:
Function GetString(ByVal key as String) as String
return Willow.Reporting.Localization.Resource.Get(User!Language, "WAR", "Title", key)
end function
Obtengo el error de compilación " La referencia a un miembro no compartido requiere una referencia de objeto. " ;.
La clase y las funciones de C # son estáticas.
como prueba, también creé una versión no estática de la clase, creé una instancia y accedí a ella a través del nombre de la instancia en el código personalizado, pero tampoco tuve suerte.
¿es posible llamar a un ensamblaje personalizado desde el bloque de código en los servicios de informes?
Solución 2
el VS IDE carga el ensamblaje solo una vez, en carga, por lo que debe cerrar / volver a abrir VS cada vez que realiza un cambio de ensamblaje (eliminar la referencia y restablecer tampoco funcionó)
también puede usar tanto llamadas estáticas como métodos de instancia y funciona bien desde el código incrustado, por ejemplo:
Function Test() as String
return Instance.GetString()
End Function
Function Test2() as String
return WR.StaticTest.GetString()
End Function
Otros consejos
¿Quizás eres un programador de C #? " Compartido " en VB significa estático. El mensaje significa que debe crear una instancia de la clase para llamar a un método (instancia) de la clase.