値が変更された場合にイベントを発生させ、1つの値を格納するPropertyというクラスがあります。 Observableという別のクラスがあり、プロパティの辞書を入れたいと思っています。私は以下の例を持っています。どのように私はオブジェクトを変更することができます辞書に格納されているプロパティの種類を取得することができますか?型引数を持つクラスへのC#キャストオブジェクト
プロパティクラス:
public class Property<T>
{
public T Value { get; set; }
}
観察可能なクラス:
public class Observable
{
public readonly Dictionary<string, object>
Properties = new Dictionary<string, object>();
public Property<T> Get<T>(string name)
{
object obj;
Properties.TryGetValue(name, out obj);
return (Property<T>) obj;
}
}
EDIT:
は、これは私が取得していますエラーです - 未処理の例外:System.InvalidCastExceptionの:のオブジェクトをキャストすることができませんが'System.String'を入力して 'ConsoleApplication.Property`1 [System.String]'と入力します。
また、Get関数を取り除き、より良い型を知る必要のないものに置き換えることができた場合は、
更新:名前で型をハッシュして型を取得する方法はありますか? (更新ポスト用)
http://stackoverflow.com/questions/2399710/how-to-get-type-of-tkey-and-tvalue-given-a-dictionarytkey-tvalue-type –
Get (...) 'が成功するでしょうか?あなたが提供したコードの何が間違っていますか? –
それは私が求めているものではありません。私は辞書の値の型を取得したくない、私はプロパティ内の値の型を取得したい。 –