Reporting services 从reporting services中的报表调用C#程序集

Reporting services 从reporting services中的报表调用C#程序集,reporting-services,Reporting Services,我在ReportServices(2008)报告中添加了对自定义程序集的引用。当我从文本框(例如,=Assembly.Class.Function())调用时,它工作得很好,但当我将其包装在自定义代码块中时: Function GetString(ByVal key as String) as String return Willow.Reporting.Localization.Resource.Get(User!Language, "WAR", "Title", key) end fun

我在ReportServices(2008)报告中添加了对自定义程序集的引用。当我从文本框(例如,=Assembly.Class.Function())调用时,它工作得很好,但当我将其包装在自定义代码块中时:

Function GetString(ByVal key as String) as String

return Willow.Reporting.Localization.Resource.Get(User!Language, "WAR", "Title", key)

end function
我得到生成错误“对非共享成员的引用需要对象引用”

C#类和函数是静态的

作为测试,我还创建了一个类的非静态版本,创建了一个实例,并通过自定义代码中的实例名访问它,但也没有运气


可以从reporting services中的代码块调用自定义程序集吗?

也许您是一名C#程序员?VB中的“共享”表示静态。该消息意味着您需要创建该类的实例,以便调用该类的(实例)方法。

VS IDE仅在加载时加载程序集一次,因此每次更改程序集时都必须关闭/重新打开VS(删除引用和重置也不起作用)

您也可以同时使用静态调用和实例方法,并且在嵌入的代码中工作良好,例如:

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

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

正当正如我上面所说,这也不起作用。创建实例仍然会给出相同的消息。调用静态方法或通过实例调用静态方法在texbox级别都可以正常工作,只是不能通过自定义代码窗口中的包装函数。请显示“实例”代码以及收到的错误消息或异常。我发现很难相信你会犯同样的错误,或者当“共享”不是事实时,你会在说“共享”时出错。另外,我不确定,但可能您对“实例”的更改没有被看到,SSRS仍在使用旧版本。关闭/重新打开VS成功了——ide只在加载时加载程序集一次。从嵌入的代码中,静态和类实例都可以正常工作,例如:Function TestInstance()作为字符串返回实例。GetString()结束函数TestStatic()作为字符串返回WR.StaticTest.GetString()结束函数