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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top