2016-11-21 5 views
0

は、私は、設定を保存し直しても、(同じ値が返されDNN 8:キャッシングモジュールの設定

var rcModule = ModuleController.Instance.GetModuleByDefinition(PortalSettings.PortalId, "MyModule"); 
var value = rcModule.ModuleSettings["value"]?.ToString() ?? string.Empty; 

使用して設定にアクセスしようとした場合その後

var moduleController = new ModuleController(); 
moduleController.UpdateModuleSetting(moduleId, "key", value); 

を経由して、いくつかのモジュールの設定を置きます)私はアプリのキャッシュをクリアするまで。値は、データベース内ではなく、モジュール内のすべての省電力設定後に正しいです。私も自分の設定を保存する方法にModuleController.SynchronizeModule(moduleId);を追加しようとしましたが、それは助けにはなりませんでした。モジュールとページキャッシュが両方とも無効になっています。 どうしたの?

答えて

1

あなたはメモリから既存のものを得ていない、moduleControllerの新しいインスタンスを作成しています。

あなたがプログラムでキャッシュをクリアすることができます。

DotNetNuke.Common.Utilities.DataCache.ClearModuleCache(TabId); 
DotNetNuke.Common.Utilities.DataCache.ClearTabsCache(PortalId); 
DotNetNuke.Common.Utilities.DataCache.ClearPortalCache(PortalId, false); 

または、正しいインスタンスを取得してプロパティを編集します。

ModuleInfo moduleInfo = ModuleController.Instance.GetModule(ModuleId, TabId, false); 
moduleInfo.ModuleTitle = "New Title"; 
ModuleController.Instance.UpdateModule(moduleInfo); 
+0

ありがとうございました!それは助けになった! – Slip

関連する問題