2009-06-19 9 views
1

J'ai ajouté une référence à un assembly personnalisé dans un rapport de services de rapport (2008). Il fonctionne très bien quand je l'appelle d'une zone de texte (par exemple, = Assembly.Class.Function()), mais quand je l'enveloppe dans un bloc de code personnalisé:appelant un assembly C# à partir d'un rapport dans les services de reporting

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 « de référence à un non Le membre -shared nécessite une référence d'objet. ".

La classe C# et ses fonctions sont statiques. En tant que test, j'ai également créé une vrsion non statique de la classe, créé une instance et y ai accédé via le nom d'instance dans le code personnalisé, mais pas de chance non plus.

est-il possible d'appeler un assembly personnalisé à partir du bloc de code dans les services de reporting?

Répondre

0

l'IDE VS charge le montage une seule fois, sur la charge - donc vous devez fermer/rouvrir VS chaque fois que vous faites un changement d'assemblage (suppression de la référence et la réinitialisation ne fonctionne pas non plus)

vous pouvez utiliser à la fois les appels statiques et les méthodes d'instance aussi, et cela fonctionne bien à partir de code incorporé, par exemple:

Function Test() as String 
    return Instance.GetString() 
End Function 

Function Test2() as String 
    return WR.StaticTest.GetString() 
End Function 
0

Peut-être êtes-vous programmeur C#? "Partagé" dans VB signifie statique. Le message signifie que vous devez créer une instance de la classe pour appeler une méthode (instance) de la classe.

+0

droite. Comme je l'ai dit plus haut, ça ne marche pas non plus. créer une instance donne toujours le même message. Les deux méthodes appelant les méthodes statiques OU l'appelant via une instance fonctionnent correctement au niveau de la zone texbox, mais pas via une fonction d'encapsulation dans la fenêtre de code personnalisée. – ericvg

+0

Veuillez afficher le code "instance" et le message d'erreur ou l'exception que vous avez reçue. Je trouve très difficile de croire que vous auriez la même erreur, ou que vous auriez une erreur en disant "Partagé" quand "Partagé" n'était pas le cas. En outre, je ne suis pas sûr mais peut-être votre changement à "instance" n'a pas été vu, et SSRS utilisait toujours l'ancienne version. –

+0

fermeture/réouverture VS a fait l'affaire - l'ide charge l'assemblage une seule fois, en charge. Les deux instances statiques et classe fonctionnent très bien à partir du code embdeded, par exemple ,: Fonction TestInstance() as String \t retour Instance.GetString() End Function Fonction TestStatic() as String \t WR.StaticTest.GetString retour () Fonction de fin – ericvg

Questions connexes