1

我有一个工作的 WCF 服务,在为它编写测试时,我添加了以下几行。

MyServiceClient client = new MyServiceClient();
Thing thing = client.GetThing();
System.WriteLine(thing.SomeProperty);

以上工作正常。然后,我尝试执行字符串化,但以下每一项都以多种方式失败。第一个失败是在这些调用上。

System.WriteLine(thing);
System.WriteLine("" + thing);
System.WriteLine(thing.ToString());

它只显示类的名称,尽管我已将自定义ToString方法添加到Thing类。我没有明确公开自定义ToString但它包含在 VS 自动为我创建的类中,所以我假设它是由父类(即Object)公开的。

public class Thing
{
  public String SomeProperty { ... }
  public override String ToString() { ... }
  //public new String ToString() { ... }
  //public String ToString() { ... }
}

我在这里想念什么?

然后,我虽然可以实现一个新属性,但它会返回字符串化。但是,该属性虽然在我获得Thing的实例时可见,但为null

public Stringification { get { return SomeProperty + "!"; } set { } }
//public ToString { get { return SomeProperty + "!"; } set { } }

为什么它不向我提供财产的实际价值?

4

0 回答 0