私はこのようなクラスを持っています:
public class ObjectA
{
public ObjectB OneObject { get; set; }
public List<ObjectC> ManyObject { get; set; }
}
そして、クラスに含まれるものを読み取り、プロパティのタイプを返す関数:
source = typeof(*some ObjectA*)
var classprops = source.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Where(x => x.PropertyType.IsClass && !x.PropertyType.IsValueType && x.PropertyType.Name != "String");
foreach (var prop in classprops)
{
var classnamespace = CommonTool.GetNamespaceFromProp(prop);
if ((prop.PropertyType).Namespace == "System.Collections.Generic")
{
string newprop = prop.ToString();
int start = newprop.IndexOf("[")+1;
int end = newprop.IndexOf("]");
newprop = newprop.Substring(start, end-start);
newprop = string.Format("{0}, Env.Project.Entites", newprop);
classnamespace = newprop;
}
//some code to read attributes on the properties...
}
私の問題は、内にあるものですif ((prop.PropertyType).Namespace == "System.Collections.Generic")
。においがします。
それを行うためのより良い方法はありますか?
編集 :
アプリケーションのクラスはを使用しますList<int>
。
これによりクラッシュが発生しました。
においが悪いだけではありませんでした。