以下の拡張メソッドを指定します。
public static class Ext
{
public static void Serialize(this Guid guid_, StringWriter sw_)
{
sw_.Write(guid_.ToString("B"));
}
}
そしてクラス:
public class Field<T>
{
public T value;
public void Serialize(StringWriter sw_)
{
value.Serialize(sw_);
}
}
次のことをしたいのですが、よくわかりません。
public class Foo
{
public Field<Guid> uid;
public Foo()
{
// assume StringWriter object sw;
uid.Serialize(sw);
}
}
明らかに、実際の状況はもっと複雑です。これは必要最小限の例にすぎません。
編集
コンパイラ エラー:
エラー CS1928: 'T' には 'Serialize' の定義が含まれておらず、最適な拡張メソッド オーバーロード 'Ext.Serialize(System.Guid, StringWriter)' に無効な引数が含まれています
エラー CS1929: インスタンス引数: 'T' から 'System.Guid' に変換できません