忍者ブログ
妄想・想像・創造
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

同じプロパティ名を持つ、異なるClassがある場合、
自動転記とかしたいよね。今後、プロパティが増えたときも便利だし。
そういうときに、propertyInfo.SetValueを使うんだけど、
プロパティの型が違うと落ちてしまう。
なので、強引に回避。
TestClass obj = new TestClass();
string value = "ほげ";
PropertyInfo p = obj.GetType().GetProperty("HogeProperty");
pSetValue(obj,
Convert.ChangeType(value, p.PropertyType),
null);

ただし、valueがnullの場合、Convert.ChangeTypeが落ちてしまうので
nullの場合は、そのまま突っ込むようにしよう。

余談だけど、p.PropertyTypeがNullableの可能性もある。
その場合、下記のように値型を取得する。
if (p.PropertyType.IsGenericType)
{
if (p.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
{
// Nullableの場合、元の型を取得
// Nullable<int> → int
return Nullable.GetUnderlyingType(p.PropertyType);
}
}

拍手

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
10 2017/11 12
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
最新CM
[09/26 gor]
[09/26 gor]
[05/17 gor]
[05/09 RX-78/C.A]
[05/07 gor]
プロフィール
HN:
編集長 黒幕
性別:
非公開
自己紹介:
京阪奈を中心に活動する自称ストリートミュージシャン。
目標は、唄って踊れる、さらに、ゴルフも上手い、さらに
字も綺麗なアーティスト。
最近、MCや物販が一人歩きで有名になり、
実際、唄うと
「あ~、この人唄えるんだぁ~」
みたいな目で見られることが多い。

また、スタッフと間違われること多し。
「あっ、ドリンク頼んで良いですか!」
ブログ内検索
カウンター
フリーエリア

Copyright © [ 黒幕編集部 ] All rights reserved.
Special Template : 忍者ブログ de テンプレート and ブログアクセスアップ
Special Thanks : 忍者ブログ
Commercial message : [PR]