3

我最初发布: https://stackoverflow.com/questions/15351024/intermittent-errors-with-enterprise-library-using-silverlight-calling-rootvisual错误使用Silverlight RootVisual与企业库5

它与激活问题标题这样的问题Activation error occured while trying to get instance of type LogWriter

然而,矿工作的时间细90%。当某些类型的ajax调用正在进行时。这就像有些东西正在被缓存并且未被清除。

有问题的行是

this.RootVisual = EnterpriseLibraryContainer.Current.GetInstance<MainPage>(); 

我没有开关来使用统一的容器中,但我刚结束了关于容器替代激活不同的错误。似乎应该有一种方法来清除任何DOM或高速缓存发生,这样的“this.RootVisual”这是特定于只Silverlight,甚至不在WPF中,它将准备好使用Current的服务定位器,或容器。

回答

1

你做正确此部分:

this.RootVisual = EnterpriseLibraryContainer.Current.GetInstance<MainPage>(); 

它必须是在您所呼叫的方式。如果没有你的代码库和你的团队在你的项目上工作,这是很难说的。我已经使用这段代码而Silverlight没有任何问题(RootVisual仅在Silverlight中,甚至在WPF中也没有)。

不幸的是,根据我对这个问题的研究,即使您更改为利用Unity容器,您最终会以与使用“当前”相同的方式发生容器实例化问题。

如果你不喜欢它,你将不得不深入挖掘并使用Fiddler等。并浏览DOM等等。然后找出它。这或停止使用Silverlight等..

的代码是没有问题的很常用的“大多数人”下面是一个例子http://entlib.codeplex.com/discussions/285472

希望这会有所帮助,我希望我能解决你的问题。

+0

嗯,在这一点上可悲的是,我不是我希望的回应。感谢您的研究,我认为这是一个很好的答案,因为它会得到。 – 2013-03-21 07:00:07