小编Rob*_*anc的帖子

vs2010 beta 2下的CS0120错误 - 需要对象引用

以下代码用于在vs2008下正常工作:

namespace N2.Engine.Globalization
{
    public class DictionaryScope : Scope
    {
                object previousValue;
        public DictionaryScope(IDictionary dictionary, object key, object value)
            : base(delegate
            {

                if (dictionary.Contains(key))
                    previousValue = dictionary[key];
                dictionary[key] = value;
            }, delegate
            {
                if (previousValue == null)
                    dictionary.Remove(key);
                else
                    dictionary[key] = previousValue;
            })
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但现在报告非静态字段,方法或属性'N2.Engine.Globalization.DictionaryScope.previousValue'需要对象引用

编译器似乎发生了变化?任何解决方法?

更新:

关于使用虚拟方法的建议.这可能也不会起作用,因为从基础构造函数调用虚方法,我认为这也是不可能的?

这是Scope(基类)的实现:

public class Scope: IDisposable
    {
        Action end;

        public Scope(Action begin, Action end)
        {
            begin();
            this.end = end;
        }

        public void End()
        {
            end();
        }

        #region IDisposable Members

        void …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2010

17
推荐指数
1
解决办法
1977
查看次数

moq - 如果类吞下异常,则尚未调用如何验证方法

我试图使用Moq测试一个相当复杂的类,并遇到了问题.

我试图验证一个方法不会被调用,通常这可以通过设置MockBehavior.Strict来做到,但是这里该类有自己的错误报告机制,因此它吞下了Moq抛出的异常.

.Verify测试结束时的所有方法也都很好,这真的很奇怪.这是Moq中的一个错误,是否有任何变通方法?

我也尝试在这个方法上设置回调并在其中执行Assert.Fail,但是当它被吞下时,测试框架(VS 2008内置测试)也没有得到通知...

我正在使用Moq 2.6.1014.1.(没时间升级到moq 3)

c# unit-testing moq

8
推荐指数
1
解决办法
3045
查看次数

使用Roslyn检测c#6功能

有没有办法用roslyn诊断分析仪检测ac#6功能?

我有一个解决方案,链接在一个不能使用c#6功能的项目的某些文件中,所以我想为那些文件做出错误.要清楚 - 我不能将整个项目设置为c#5,只有一些文件没有限制.

我可以尝试捕捉特定的功能,但它很麻烦,并想知道是否有更快的方法?

c# roslyn

5
推荐指数
1
解决办法
248
查看次数

事件处理范围活动中的延迟活动 - Windows工作流共享点

我正在尝试创建以下方案:

  • 任务被分配给用户完成
  • 为管理员创建一个任务,以便在必要时重新分配用户任务(不要问,他们想要这样)
  • 当任务接近截止日期时,需要发送电子邮件提醒

所以,我想到使用EventHandlingScope:

  • 我正在听eventhandlingscope活动的主要分支上的任务更改,
  • 在事件驱动的分支中侦听重新分配任务更改 - 如果重新分配任务被激活,则将第一个任务重新分配给指定的用户
  • 在另一个事件驱动分支中使用延迟活动并定期检查用户分配的任务是否即将到期并发送电子邮件提醒

因此,尽管eventhandlingscope对此有好处,但它主要是,除了DelayActivity的问题.

如果我在其中一个事件处理程序分支中放置一个延迟活动,它会触发一次,但不会更多.然而,如果我在那里放置onTaskChange活动,那么每当有人改变该任务时它就会触发.

那么,这是预期的行为吗?为什么DelayActivity不循环?我怎么能这样做?我的想法是用CAG,但这看起来有点复杂......

更新:CAG的问题是整个事情都会阻塞,直到延迟活动触发,即使onChange事件被触发.这是有道理的,但使用起来有点棘手.

Update2:我已经对文本进行了重新编写,以使其更加清晰

sharepoint workflow delay workflow-foundation

2
推荐指数
1
解决办法
3963
查看次数

当从javascript调用时,UpdatePanel中的asp.net按钮会导致Firefox 15.0.1中的整个页面刷新

好的,这是一个奇怪的.

我正在使用.net框架4.我在updatepanel中有一个asp.net按钮,如下所示:

<asp:Button id="btNacinMontaze" runat="server" class="buttonOIHidden" value="nm" CausesValidation="false" onclick="btNacinMontaze_Clicked" clientidmode="Static" UseSubmitBehavior="false"/>
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器中单击它它可以正常工作 - updatepanel更新自己而不刷新整个页面,正确的服务器事件被触发.

如果我在页面内这样做: document.getElementById("btNacinMontaze").click();

整个页面刷新并触发正确的服务器事件.

如果我从firebug控制台中发出相同的代码行,则只需刷新updatePanel.

如果我在Chrome或IE9中加载相同的页面,它在所有情况下都可以正常工作.我已经跟踪了点击鼠标和通过在Firebug中调试点击代码之间的不同,并在Sys$WebForms$PageRequestManager$_doPostBack方法中看到了该行

if (!this._postBackSettings.async)
Run Code Online (Sandbox Code Playgroud)

是不同的.单击鼠标时异步为true,代码单击为false.

我不知道为什么会发生这种情况,并且非常感谢任何帮助.

.net c# asp.net

2
推荐指数
1
解决办法
3532
查看次数