私はしばらく寝ていないので、これはおそらく私が思うより簡単です。オブジェクトをジェネリック型にキャスト
私はこれより以下の汎用クラスがあります。他の場所で
public class Reference<T> where T : APIResource //<- APIResource is abstract btw
{
private T _value = null;
public T value
{
get { return _value; }
}
}
は、カスタムのSerializeメソッドでは、誰かが実際にReference<(something)>
のインスタンスであるobject
に渡しています。私は単純にすべてのReference<>
オブジェクトが持っている「値」プロパティにスキップしたいので、私は行きたい:
:もちろん
string serialize(object o)
{
return base.serialize(((Reference<>) o).value);
}
、人生は、コンパイラがそれを置くためとしてそれほど単純ではありませんusing the generic type "Reference<T>" requires 1 type arguments
私は何をしたいのですか?
私は共変のジェネリックインターフェースについては何も知りませんでしたので、私は本当に嬉しく思いました。それに応じてジェネリッククラスを修正しなければなりません: 'public class Reference:IReference T:APIResource {...}'。これにより、私は '((IReference )o).Value'を使ってValueプロパティを取得することができます。 –
Alain