私は動作中の 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 { } }
物件の実際の価値が表示されないのはなぜですか?