1 c#
这听起来有点奇怪,但我有一些代码(实际上是MS Blend的插件)在单元测试中运行完美,但在Blend中不起作用.
代码如下.
private static volatile QWGUIRepository s_instance;
public static void Initialize(IUnityContainer container, string themeuri)
{
lock (s_lock)
{
s_instance = new QWGUIRepository();
QWRepository.Initialize(container);
}
}
Run Code Online (Sandbox Code Playgroud)
在调试器中(在将它附加到Blend之后),我可以看到s_instance被初始化为一个值(之后不是null),但是一旦我离开该方法,"s_instance"将忘记它的值并且将为null.
有任何想法吗?
谢谢,安德烈亚斯
两个猜测:
1)你的阅读AppDomain与你写的不同.静态变量的范围是AppDomain.如果您AppDomain.CurrentDomain在Initialize期间查看调试器,然后在尝试阅读它时,它们是否看起来像是同一个域?
2)您实际上已将s_instance声明为Initialize中的局部变量,并且未触及静态变量.希望情况并非如此,但你永远不会知道......