繁体   English   中英

从app.config以外的文件初始化BasicHttpBinding对象吗?

[英]Initialise BasicHttpBinding object from file other than app.config?

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

我想使此绑定可编辑而无需重新编译,因此该解决方案可以轻松地安装在不同的客户上。 我能想到的最干净的方法是将绑定配置存储在Web资源中(对于非CRM人员,这只是存储在CRM中的文件的名称,您可以从代码中访问该文件),但我不是确定将配置解析为BasicHttpBinding对象的最佳方法? 手动解析它并设置属性似乎效率不高,而且不是很可靠。

有什么办法可以让我使用.NET(类似于BasicHttpBinding(string)构造函数,但是由于我无权访问app.config,因此这不是一种选择)吗?

鉴于此配置的(大概)易变性,您能否在插件注册步骤中将其存储在插件安全/不安全配置中? 在运行时访问此文件将比连接到CRM检索Web资源的内容要快得多。 当然,这意味着您需要插件注册工具和sys admin才能进行更改,但这也意味着用户会混淆所有敏感数据。 插件的App.config确实不可用-但这就是插件步骤中的config部分所针对的。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM