我有一个有效的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 ,但是它自动包含在为我创建的类中,所以我假设它是由父类公开的(即 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 { } }
为什么不向我提供该物业的实际价值?