我有一个工作的 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 { } }
为什么它不向我提供财产的实际价值?