有没有一种方法可以代表.NET中没有日期的时间值?例如,指示商店的营业时间?
TimeSpan
表示范围,而我只想存储时间值.使用DateTime
指示,这将导致新的DateTime(1,1,1,8,30,0)
并非真正的希望.
假设以下类型定义:
public interface IFoo<T> : IBar<T> {}
public class Foo<T> : IFoo<T> {}
Run Code Online (Sandbox Code Playgroud)
当只有受损的类型可用时,如何确定类型是否Foo
实现了通用接口IBar<T>
?
假设以下假设的继承层次结构:
public interface IA
{
int ID { get; set; }
}
public interface IB : IA
{
string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用反射并进行以下调用:
typeof(IB).GetProperties(BindingFlags.Public | BindingFlags.Instance)
Run Code Online (Sandbox Code Playgroud)
只会产生接口的属性IB
,即" Name
".
如果我们要对以下代码进行类似的测试,
public abstract class A
{
public int ID { get; set; }
}
public class B : A
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
该调用typeof(B).GetProperties(BindingFlags.Public | BindingFlags.Instance)
将返回PropertyInfo
" ID
"和" Name
" 的对象数组.
有没有一种简单的方法来查找接口的继承层次结构中的所有属性,如第一个示例中所示?
我目前正将我的MsTest单元测试转换为xUnit.使用xUnit,有没有办法测试异常消息?测试异常消息是否正确,而不仅仅是异常类型?
假设我正在使用Visual Studio在家中启动一个新的Web项目,即哪个版本控制系统,即.Git或Subversion会更好用吗?哪一个设置复杂度最低?
我们正在使用Rhino Mocks执行一些单元测试,需要模拟两个接口.在对象上只实现了一个接口,而另一个接口是使用面向方面的方法动态实现的.是否有一种简单的方法可以动态组合这两个接口,以便可以创建模拟并为两个接口创建方法?
假设两个列表A和B使得A =(1,2,3)和B =(4,5,6).A.Concat(B)会保留订单,结果是(1,2,3,4,5,6)吗?
假设Visual Studio.NET 2008和MsTest用于运行单元测试.当系统基于服务容器并且依赖注入单元测试时,自然需要建立服务.
是否应该在基类中设置这些服务,所有单元测试都来自或在每个单元测试类中.如果它们应该在基类中,是否有一种方法可以执行TestInitialize
和ClassInitialize
方法而不需要从派生类中调用它们,例如base.Initialise?
我目前正在构建一个ASP.NET MVC项目,NHibernate作为其持久层.
目前,已经实现了一些功能,但只使用本地NHibernate会话:访问数据库(读取或写入)的每个方法都需要使用"using()"子句实例化自己的NHibernate会话.
问题是我想利用NHibernate的延迟加载功能来提高项目的性能.
这意味着每个请求都会打开一个NHibernate会话,直到呈现视图为止.此外,必须支持同时请求(同时多个会话).
我怎样才能尽可能干净地实现这一目标?
我在网上搜索了一下,了解了每个请求的会话模式.我看到的大多数实现使用某种Http*(HttpContext等)对象来存储会话.此外,使用Application_BeginRequest/Application_EndRequest函数很复杂,因为当我只想为每个请求实例化一次会话时,它们会针对每个HTTP请求(aspx文件,css文件,js文件等)被触发.
我担心的是我不希望我的视图或控制器能够访问NHibernate会话(或者更常见的是NHibernate命名空间和代码).这意味着我不想在控制器级别处理会话,也不想在视图级别处理会话.
我有几个选择.哪一个看起来最好?
非常感谢你!
.net ×6
c# ×5
mstest ×2
reflection ×2
unit-testing ×2
asp.net-mvc ×1
datetime ×1
git ×1
linq ×1
nhibernate ×1
refactoring ×1
rhino-mocks ×1
session ×1
svn ×1
time ×1
xunit ×1