0

我目前有 C# 中的代码,需要一个BasicHttpBinding对象来连接到 SSRS。就目前而言,我使用代码中分配的值初始化此对象,而不是从其中读取它app.config(这是因为我正在部署的平台 MS CRM 2011 不提供对app.config文件的读取权限。事实上,我不要认为app.config文件甚至被复制到服务器)。

我想让这个绑定可以在不重新编译的情况下进行编辑,以便可以在不同的客户处轻松安装该解决方案。我能想到的最简洁的方法是将绑定配置存储在网络资源中(对于非 CRM 人员,这只是存储在 CRM 中的文件的名称,您可以从代码中访问),但我不是确定将配置解析为BasicHttpBinding对象的最佳方法吗?手动解析它并设置属性似乎效率低下且不是很健壮。

有什么方法可以为我获取 .NET(类似于BasicHttpBinding(string)构造函数,但由于我无权访问 app.config,这不是一个选项)?

4

1 回答 1

0

鉴于此配置的(可能)低波动性,您能否在插件注册步骤中将其存储在插件安全/不安全配置中?在运行时访问它比连接到 CRM 以检索 Web 资源的内容要快得多。当然,这意味着您需要插件注册工具和系统管理员才能进行更改,但这也意味着任何敏感数据都会被用户混淆。插件的 App.config 确实不可用 - 但这就是插件步骤中的配置部分的用途。

就使用构造函数而言,BasicHttpBinding 听起来您正在寻找一种方法,只需传递配置部分的键名即可为您完成所有构造函数的魔法。我不相信这是可能的,但无论如何,您关于“手动解析它并设置属性似乎效率低下”的建议可能是没有根据的——毕竟这正是本机构造函数最终将要做的事情。把它藏在一个函数后面,你永远不会知道它在那里;)

我之前已在插件中连接到 SSRS Web 服务(请注意 - 由于服务未公开,CRM Online 不支持 :( )并且我采用了我常用的存储配置的方法,如上所述,在插件配置中,然后将其读入然后在运行时解析出XmlDocument实例化对象/设置属性所需的值。

只要对插件的所有请求的配置都是相同的,您还可以通过将配置值(不是连接本身)设置为插件中的类级别属性来潜在地提供一些效率(即使这在SDK - 但这是由于线程安全性,这不应该是诸如此类的“静态”配置值的问题),并且如果它们尚未设置,则仅从配置中读取值。

于 2012-09-18T10:11:38.053 回答