小编Del*_*ate的帖子

当变量在.NET中获取特定值时,我可以设置断点吗?

我正在使用Visual Studio 2010,我知道这个功能在C++中可用.

我需要调试一些代码,将变量更改为多个值.我想在特定情况下调试代码,当变量获得特定值时.我知道我可以添加if(var == value),但是有没有优雅的方法呢?

另一个问题,我可以在变量一般改变时设置断点吗?

.net debugging breakpoints conditional-breakpoint visual-studio

43
推荐指数
2
解决办法
5万
查看次数

如何使用lambda表达式从字典中删除项目

我不是LINQ解决方案,

我使用简单的谓词来确定是否应该删除密钥,例如,如果字典是构造的Dictionary<int, int>,那么我应该如何删除所有带有负数据的条目

我更喜欢使用相同的字典,而不是创建新字典,我没有性能问题

有没有办法做到这一点,不使用LINQ,而是使用Lambda表达式?

我不想在LINQ中使用解决方案,因为没有人在我的项目中使用它们,不想成为第一个..但是因为我看到LINQ解决方案看起来更好,我将使用它们..

c# lambda dictionary

31
推荐指数
3
解决办法
4万
查看次数

使用moq的autofac

我需要使用特定的接口注册我的Autofac容器,对于这种情况我想解决mock.

我该怎么做?

我试过了:

var AppContainer = ApplicationContainer.GetApplicationContainer();  
var cb = new ContainerBuilder();
cb.RegisterType<Mock<IStudyLoader>>().As<IStudyLoader>().SingleInstance();
cb.Update(AppContainer);
Run Code Online (Sandbox Code Playgroud)

我不想改变我的代码来解决别的问题IStudyLoader,但Mock<IStudyLoader>不能替代IStudyLoader; 例如Mock<IStudyLoader>.Object可以替代IStudyLoader,但我不能注册,Mock<IStudyLoader>.Object因为它不是一种类型.

请纠正我; 我觉得我错过了什么.

(我有另一个限制,我不能使用其他容器ApplicationContainer.GetApplicationContainer())

(我认为在测试时手动注入依赖项会更好,但这次我不想更改生产代码.)

c# moq autofac

12
推荐指数
3
解决办法
1万
查看次数

如何避免重复的try catch块

我有几个方法看起来像这样:

public void foo()
{
   try 
   {
      doSomething();
   }
   catch(Exception e)
   {
      Log.Error(e);
   }
 }
Run Code Online (Sandbox Code Playgroud)

我可以更改代码吗?

[LogException()]
public void foo()
{   
   doSomething();
}
Run Code Online (Sandbox Code Playgroud)

如何实现此自定义属性?这样做的利弊是什么?

-----编辑1 ------------

我可以自己实现它,我的意思是只写一个类,还是我需要使用postharp或其他解决方案?

c# attributes try-catch

11
推荐指数
1
解决办法
2163
查看次数

如何在wordpress中创建自定义分页永久链接

我的wordpress博客中有一篇包含多个页面的文章.例如,我在我的博客中有以下链接:

http://example.com/heartbreaking-photos 任何想法如何更改第二页的链接

http://example.com/heartbreaking-photos/2http://example.com/heartbreaking-photos/CUSTOM-STRING

CUSTOM-STRING旨在成为页面内的自定义标题

wordpress

9
推荐指数
1
解决办法
873
查看次数

不可重入的计时器

我有一个函数,我想每x秒调用一次,但我希望它是线程安全的.

我在创建计时器时可以设置此行为吗?(我不介意我使用哪个.NET计时器,我只是希望它是线程安全的).

我知道我可以在我的回调函数中实现锁,但我认为如果它在计时器级别会更优雅.

我的回调函数和环境与UI无关.

[编辑1] 我只是不希望我的回调函数中有多个线程.

[编辑2] 我想将锁定保持在计时器级别内,因为计时器负责何时调用我的回调,这里有一种特殊情况,当我不想调用我的回调函数时.所以我觉得什么时候打电话是计时器的责任.

c# timer thread-safety

7
推荐指数
2
解决办法
5580
查看次数

我该怎么用Sleep或Timer

我有两个使用计时器或使用睡眠的替代方案,我需要在这个方法完成后每隔3秒调用一个方法,我写了一个基本的例子来证明我的意思:

public static void Main()
{
    new Thread(new ThreadStart(fooUsingSleep)).Start();

    callToMethodAfterInterval(new Action<object, ElapsedEventArgs>(fooUsingTimer), 3000);
}

public static void fooUsingSleep()
{
    Console.WriteLine("Doing some consuming time work using sleep");
    Thread.Sleep(3000);
    fooUsingSleep();
}

public static void fooUsingTimer(object dummy, ElapsedEventArgs dummyElapsed)
{
    Console.WriteLine("Doing some consuming time work usning timer");
    callToMethodAfterInterval(new Action<object, ElapsedEventArgs>(fooUsingTimer), 3000);
}

public static void callToMethodAfterInterval(Action<object,ElapsedEventArgs> inMethod, int inInterval)
{
    System.Timers.Timer myTimer = new System.Timers.Timer();
    myTimer.Elapsed += new ElapsedEventHandler(inMethod);
    myTimer.Interval = inInterval;
    myTimer.AutoReset = false;
    myTimer.Start();
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是

1)我可以用更优雅的定时器编写代码吗?意味着从fooUsingTimer中删除对callToMethodAfterInterval方法的调用,使计时器为一行或两行,并从fooUsingTimer的声明中删除虚拟变量?

2)我理解睡眠不忙等待(http://www.codeproject.com/KB/threads/ThreadingDotNet.aspx)所以我没有找到在这里使用计时器选项的理由,因为睡眠更简单,什么是更好的使用,计时器版本或睡眠?

3)我知道Timers.timer是线程安全的,它能帮助我实现我想要实现的行为吗?

谢谢.

c# sleep timer

6
推荐指数
1
解决办法
2341
查看次数

如何切换该代码以使用LINQ

我知道使用LINQ而不是迭代循环是好的做法,我可以修改此代码以使用LINQ吗?

List<string> priorsLstIDs = ServiceUtil.extractColumnValuesAsStringVals(tqrPriors,Helper.STUDY_ID);
List<DateTime> priorsLstDates = ServiceUtil.extractColumnValuesAsDateTimeVals(tqrPriors, "STUDY_DATE");
List<PriorElemSt> priorsElemLst = new List<PriorElemSt>(priorsLstIDs.Count);

PriorElemSt elem;

for (int i = 0; i < priorsLstIDs.Count; i++)
{
    elem = new PriorElemSt(priorsLstIDs[i], priorsLstDates[i]);
    priorsElemLst.Add(elem);
}

return filterStudyPriors(priorsElemLst);
Run Code Online (Sandbox Code Playgroud)

谢谢.

更新:filterStudyPriors()方法调用可以成为LINQ的一部分吗?

.net c# linq

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

如何在System.Diagnostics跟踪日志中设置翻转策略

我有一个项目,使用System.Diagnostics进行日志记录,

它创建了许多新的日志文件,每个文件以GUID开头,

即使最后一个日志文件非常小

我想设置一个控制新日志文件创建的角色

我在哪里可以配置它?

第二个问题:我在哪里可以设置日志写非utc时间?

谢谢

.net c# logging diagnostics

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

c#计时器问题

我有一个方法,我想每隔3秒在一个单独的线程中调用一个方法(将提到myFanc)

下面的代码很容易做到,

 Timer myTimer = new Timer();
 myTimer.Elapsed += new ElapsedEventHandler( myFanc );
 myTimer.Interval = 3000;
 myTimer.Start();
Run Code Online (Sandbox Code Playgroud)

上面的代码可能导致myFanc被调用,而另一个myFanc调用尚未完成

我的问题是我还希望myFanc在我调用她的agian之前完成,所以基本上我想在myFanc完成后每隔3秒在分离的线程中调用该方法,我该怎么办呢?

我不介意解决方案是否不会使用Timer类,我只是想让这个行为起作用..

c#

3
推荐指数
1
解决办法
1191
查看次数

我可以扩展int.TryParse方法吗?

我希望我有以下方法

int num;  
int.TryParse("5",out num, 10);
Run Code Online (Sandbox Code Playgroud)

这将与TryParse相同,但如果解析失败则addtional,out参数将获得defualt值10

我可以实现它吗?

使用扩展方法,我可以实现以下内容:

int num;
num.TryParse("5",out num, 10);
Run Code Online (Sandbox Code Playgroud)

但这看起来与其他TryParse方法不同.

c# parsing

3
推荐指数
1
解决办法
2677
查看次数

实体框架正在替换我的对象的 ID

我正在使用实体框架4.1

我有常规对象,我将他的 ID 设置为 123456789 (长值)

然后我调用 SaveChanges()

问题是 SaveChanges() 正在更改内存和数据库中的 ID,它将 ID 指定为 20

如果我重复这个,它会将 id 指定为 21 等等。

什么会导致这种行为?我应该做什么来解决它?

ID声明:public long ID { get; 放; }

以前已经工作过,以前当ID声明为int时可能工作过(将其更改回来检查是否修改过大..)

谢谢

c# entity-framework-4.1

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