appel d'un assemblage C # à partir d'un rapport dans les services de génération de rapports
-
06-07-2019 - |
Question
J'ai ajouté une référence à un assemblage personnalisé dans un rapport report services (2008). Cela fonctionne très bien lorsque j'appelle depuis une zone de texte (par exemple, = Assembly.Class.Function ()), mais lorsque je l'enveloppe dans un bloc de code personnalisé:
Function GetString(ByVal key as String) as String
return Willow.Reporting.Localization.Resource.Get(User!Language, "WAR", "Title", key)
end function
Je reçois l'erreur de construction "La référence à un membre non partagé nécessite une référence à un objet.".
La classe et les fonctions C # sont statiques.
En guise de test, j'ai également créé une version non statique de la classe, créé une instance et y ai accédé via le nom de l'instance dans le code personnalisé, mais sans succès non plus.
est-il possible d'appeler un assemblage personnalisé à partir du bloc de code dans les services de génération de rapports?
La solution 2
VS IDE charge l'assemblage une seule fois, lors du chargement - vous devez donc fermer / rouvrir VS chaque fois que vous effectuez une modification d'assemblage (supprimer la référence et réinitialiser ne fonctionnait pas non plus)
vous pouvez utiliser à la fois des appels statiques et des méthodes d'instance. Cela fonctionne très bien à partir du code incorporé, par exemple:
Function Test() as String
return Instance.GetString()
End Function
Function Test2() as String
return WR.StaticTest.GetString()
End Function
Autres conseils
Peut-être que vous êtes un programmeur C #? " Partagé " en VB signifie statique. Le message signifie que vous devez créer une instance de la classe pour pouvoir appeler une méthode (instance) de la classe.