万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

setもgetもあるのをリフレクションで取りたい C# Unity

リフレクションであるプロパティにアクセスしたい。

var qry = typeof(Foo).type.GetProperties(BindingFlags.Public|BindingFlags.Instance);

だとsetプロパティがないのもとれてしまう・・・。

http://stackoverflow.com/questions/302476/how-do-you-find-only-properties-that-have-both-a-getter-and-setter

ここのTimさんの投稿見た。

using System.Linq;
using System.Reflection;

忘れずに。

var qry = typeof(Foo).GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(p => p.CanRead && p.CanWrite);

でWhereでフィルターする。 今回var使ってるが、ToArray();を使って配列化する必要がある。

PropertyInfo[] qry = type.GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(p => p.CanRead && p.CanWrite).ToArray();