Noda 时间单元测试 XML 错误

Noda Time Unit Testing XML Error

我正在尝试使用 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);
}

但是当我尝试构建测试时出现此错误:

error CS0012: The type 'System.Xml.Serialization.IXmlSerializable' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=----------(I erased this on purpose)'.

我该如何解决这个问题?少了什么东西? VS2013 将错误指向 "FakeClock fakeClock =..."

中的 FakeClock 类型

您需要将 reference 添加到 System.Xml 程序集(而不是 System.Xml 命名空间的 using 指令)。在解决方案资源管理器中执行此操作 - 这不是代码问题。

这很不幸,但据我所知,这是 Noda Time 实施 XML 序列化的不可避免的副作用...大概是由于用于装饰类型的属性。