我正在尝试使用Noda Time设置一个简单的单元测试。我的代码是:
public void ValidityPassedDate()
{
FakeClock fakeClock = new FakeClock(SystemClock.Instance.Now);
fakeClock.AdvanceDays(60);
MyClass myObj = new MyClass(fakeClock);
myObj.Validity = "1";
myObj.Date = SystemClock.Instance.Now.InZone(DateTimeZoneProviders.Tzdb.GetSystemDefault()).LocalDateTime.Date;
Assert.IsTrue(myObj.ValidityIsValid);
}
但是当我尝试构建测试时出现此错误:
错误CS0012:类型'System.Xml.Serialization.IXmlSerializable'是 在未引用的程序集中定义。你必须添加一个 对程序集'System.Xml,Version = 2.0.0.0,Culture = neutral, PublicKeyToken = ----------(我故意删除了这个)'。
我该如何解决这个问题?少了什么东西? VS2013将错误指向FakeClock
"FakeClock fakeClock =..."
类型
答案 0 :(得分:3)
您需要向System.Xml
程序集添加引用(而不是using
命名空间的System.Xml
指令。在解决方案资源管理器中执行此操作 - 这不是代码问题。
这很不幸,但据我所知,Noda Time实现XML序列化是不可避免的副作用......大概是由于用于装饰类型的属性。