我有一个已经使用了一段时间的SQL Server CLR函数DLL。唯一真正的问题是它在需要返回人类可读的字符串(例如“是”,“否”)时使用硬编码的字符串。我们所有其他桌面应用程序都使用资源字符串和图形来使应用程序语言独立(例如,允许使用英语,法语,西班牙语等)。我想找到一种方法,允许从存储过程或函数中查找语言资源DLL中的资源,但到目前为止尚未找到任何引用该资源的文章。这将采用接受语言代码和资源名称的函数的形式(例如GetResourceString('EN-US','ApplicationName')并按请求的类型返回适当的资源。
有没有人有一个过程或方法来显示如何将资源程序集加载到CLR Functions DLL旁边的SQL Server中?我假设每个程序集都需要签名,但是我不知道正常的资源加载机制是否可以在SQL Server中运行,或者我是否可以通过使用反射从CLR函数中加载程序集来“自己做”?
0
我没有尝试过此特定要求,但是SQL CLR程序集可以依赖于其他SQL CLR程序集并从中使用功能。
创建程序集时,SQL Server还将在同一位置查找该程序集的任何相关程序集,并上载它们。它将它们设置为与您要加载的主装配件具有相同的所有者。
加载程序集时,还可以将“ is_visible”设置为false,以便该程序集仅用于为数据库中的其他程序集提供内部实现,而不是直接进行分类。
即使没有直接实现标准机制,也没有理由不能将其用于提供等效的语言资源DLL。
然后,您可以通过查询sys.assembly_references目录视图来查看程序集之间的引用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。