访问 DotNetNuke 模块内的 .config 文件

Zah*_*hra 3 c# asp.net configuration-files dotnetnuke-module dotnetnuke-7

我已经实现了一个使用用户定义控件的DNN模块(这个用户定义控件已经实现了GoogleAnalytics跟踪供我们自己使用)。

该控件需要访问配置文件才能获取我们的谷歌分析帐户的配置设置。例如账户代码(UA-dddddd-dd)等。

我的问题:由于我在 DotNetNuke 上安装模块,放置配置文件的正确位置在哪里,或者默认情况下它将访问什么配置文件?

下面提供了控件中尝试访问配置文件的代码段:

string path = Assembly.GetExecutingAssembly().CodeBase;
FrameworkConfig.instance = new FrameworkConfig(ConfigurationManager.OpenMappedMachineConfiguration(new ConfigurationFileMap(path + ".config")));
Run Code Online (Sandbox Code Playgroud)

注意:FrameworkConfig是对象的包装类System.Configuration

简而言之,我需要知道 Assembly.GetExecutingAssembly().CodeBase通过 DNN 模块调用时返回什么?其他选择?

小智 5

如果您将密钥添加到 DNN 站点 web.config 的 appsettings 部分,则可以使用以下方法检索它们:

DotNetNuke.Common.Utilities.Config.GetSetting("settingname");
Run Code Online (Sandbox Code Playgroud)

然而,这是一种更好的做法,在这种情况下在模块中创建控件Settings并在其中存储信息是有意义的。

您可以通过创建一个 ascx 控件来实现此目的,该控件继承DotNetNuke.Entities.Modules.ModuleSettingsBase自模块的基本设置字典并将设置存储在其中。

您的其他模块视图控件可以通过称为该类一部分的类似Dictionary对象来访问设置。SettingsModuleUserControlBase

有关如何使用模块设置的示例,请查看此 DNN7 教程视频和文章。包含所有代码的示例项目位于本文的相关文件部分。