gpt4 book ai didi

silverlight - Prism OnDemand 模块加载能否在 OOB 场景中工作?

转载 作者:行者123 更新时间:2023-12-03 17:20:45 25 4
gpt4 key购买 nike

OnDemand Prism 模块的加载是否应该在 OOB 场景中工作?如果是这样,我似乎无法让它发挥作用。目前一切都在浏览器中正常工作,没有任何问题。具体来说我:
在代码中注册我的模块:

    protected override IModuleCatalog GetModuleCatalog() {
var catalog = new ModuleCatalog();
Uri source;

if( Application.Current.IsRunningOutOfBrowser ) {
source = IsolatedStorageSettings.ApplicationSettings[SOURCEURI] as Uri;
}
else {
var src = Application.Current.Host.Source.ToString();
src = src.Substring( 0, src.LastIndexOf( '/' ) + 1 );
source = new Uri( src );
IsolatedStorageSettings.ApplicationSettings[SOURCEURI] = source;
IsolatedStorageSettings.ApplicationSettings.Save();
}

if( source != null ) {
var mod2 = new ModuleInfo { InitializationMode = InitializationMode.OnDemand,
ModuleName = ModuleNames.mod2,
ModuleType = "mod2.Module, mod2.Directory, '1.0.0.0', Culture=neutral, PublicKeyToken=null" ),
Ref = ( new Uri( source, "mod2.xap" )).AbsoluteUri };

catalog.AddModule( mod2 );
}

// per Jeremy Likeness - did not help.
Application.Current.RootVisual = new Grid();

return ( catalog );
}

稍后请求加载模块:
mModuleManager.LoadModule( ModuleNames.mod2 );

并等待对该加载模块初始化期间发布的事件的响应。

该模块似乎永远不会被加载,当应用程序在调试器下运行时,将出现一个消息框,指出 Web 服务器返回“未找到”错误。我可以获取模块的请求 url 并将其输入 Firefox 并毫无问题地下载模块。

我还没有找到任何关于这实际上可行的引用,但似乎它应该这样做。我在这个主题上找到的最多的是 blog entry by Jeremy Likeness ,其中涵盖了在 MEF 中加载模块,但在这里应用他的知识并没有帮助。

服务器是本地主机(我听说它提到这可能会导致问题)。服务器有一个 clientaccesspolicy.xml 文件——虽然我不认为这是必需的。
我正在使用客户端堆栈并在应用程序构建期间对其进行注册:
WebRequest.RegisterPrefix( Current.Host.Source.GetComponents( UriComponents.SchemeAndServer, UriFormat.UriEscaped ), WebRequestCreator.ClientHttp );

后续问题:

可以以某种方式将所有 xap 安装到客户端桌面 - 还是仅安装主应用程序 xap?以某种方式在 appmanifest.xml 中指定它们?

如果只安装了 application.xap 并且无论如何都必须下载其余的 xap,这样做是否值得?

最佳答案

曾经我处理过类似的场景。诀窍是将模块存储在隔离存储中,并使用模块加载器在离线工作时从隔离存储中读取。

这是因为否则,您无法下载与 Shell 不同的 .xap 文件中的模块。

谢谢,
达米安

关于silverlight - Prism OnDemand 模块加载能否在 OOB 场景中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com