小编Pac*_*aco的帖子

我何时使用TestFixtureSetUp属性而不是默认构造函数?

NUnit文档没有告诉我何时使用带有a的方法TestFixtureSetup以及何时在构造函数中进行设置.

public class MyTest
{
    private MyClass myClass;

    public MyTest()
    {
        myClass = new MyClass();
    }

    [TestFixtureSetUp]
    public void Init()
    {
        myClass = new MyClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

关于TestFixtureSetup与默认构造函数有任何好/坏的做法,或者没有任何区别?

c# nunit unit-testing

70
推荐指数
5
解决办法
4万
查看次数

如何在使用Web服务器加载之前编译Asp.Net Aspx页面?

视觉工作室隐藏了aspx页面中的拼写错误(而不是后面的代码)真的很烦人.如果编译器会编译它们,我会收到编译错误.

asp.net

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

为什么人们在代码中使用魔术值而不是null?

我在遗留代码和一些.NET开源项目中看到了这一点.我无法想象这样做的理由.只使用"null"对我来说似乎更容易.

例:

public class Category
{
   int parentID;

   bool HasParent
   {
      get
      {
          return parentID != -1;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

public class Category
{
   int parentID;

   bool HasParent
   {
      get
      {
          return parentID != null;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

magic-numbers

9
推荐指数
2
解决办法
1423
查看次数

我可以使用无符号右移来阻止C#中的整数溢出吗?

我希望alwaysPositive被分配一个正数,其中包含lareValue1和largeValue2的所有可能值(这些值至少为1).

以下语句导致缓冲区溢出:

int alwaysPositive = (largeValue1 + largeValue2) / 2;
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过减去和添加来阻止它:

int alwaysPositive = largeValue1 + ((largeValue2 - largeValue1) / 2);
Run Code Online (Sandbox Code Playgroud)

但在其他编程语言中,我可以使用无符号位移来实现这一诀窍:

int alwaysPositive3 = (largeValue1 + largeValue2) >>> 1;
Run Code Online (Sandbox Code Playgroud)

我怎么能在C#中做到这一点?


以下答案都解决了这个问题.可能有很多方法可以做到这一点,但它们(包括我的解决方案)都有一个共同点:它们看起来都是混淆的.

c# integer-overflow bit-shift

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

如何在NServicebus消息处理程序中注入多个存储库?

我使用以下内容:

public interface IRepository<T>
{
   void Add(T entity);
}

public class Repository<T>
{
  private readonly ISession session;

  public Repository(ISession session)
  {
    this.session = session;
  }

  public void Add(T entity)
  {
     session.Save(entity);
  }
}

public class SomeHandler : IHandleMessages<SomeMessage>
{
  private readonly IRepository<EntityA> aRepository;
  private readonly IRepository<EntityB> bRepository;

  public SomeHandler(IRepository<EntityA> aRepository, IRepository<EntityB> bRepository)
  {
    this.aRepository = aRepository;
    this.bRepository = bRepository; 
  }

  public void Handle(SomeMessage message)
  {
   aRepository.Add(new A(message.Property);
   bRepository.Add(new B(message.Property);
  }
}

public class MessageEndPoint : IConfigureThisEndpoint, AsA_Server, IWantCustomInitialization
{
   public …
Run Code Online (Sandbox Code Playgroud)

structuremap nhibernate nservicebus

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

我在哪里可以找到WMI文档?

谷歌让我失望,我在MSDN上找不到它.man wmi在Windows shell中不起作用...我正在查找可以查询的对象列表,以及如何构造查询.

使用WMI我的意思是用于查询诸如"Win32_Process"之类的东西的查询语言

我知道类和示例查询,但我正在寻找所有可能的查询对象的完整列表.

我已经使用调试器找到了我正在寻找的内容,但是查看完整的概述以了解WMI的可能性仍然很有意思.

wmi

4
推荐指数
2
解决办法
3349
查看次数