C# クラスのプロパティを反復処理して、値を別のインスタンスと比較しています。コンセプトはシンプルで、私がやろうとしていることでうまくいきます。ただし、私の foreach ループは停止しません。クラスをループし続け、StackOverflowException
. 私はこれで途方に暮れています。どんな助けでも大歓迎です!
public static Object ORIGINALRECORD { get; set; }
protected String DirtySets()
{
String sDirtySets = "";
foreach (PropertyInfo property in this.GetType().GetProperties(BindingFlags.Public|BindingFlags.Instance))
{
if (ORIGINALRECORD.GetType() == this.GetType())
{
System.Diagnostics.Debug.WriteLine(property.Name);
object originalValue = ORIGINALRECORD.GetType().GetProperty(property.Name).GetValue(ORIGINALRECORD, null);
object newValue = property.GetValue(this, null);
if (!object.Equals(originalValue, newValue))
{
sDirtySets = (sDirtySets == "" ? "" : sDirtySets + ",") + property.Name + "=?";
}
}
}
return "SET "+sDirtySets;
}