נגדיר מחלקה פשוטה:
כל זה מקסים, כאשר: 1. יש לי קצת ערכים 2. אני יודע מהם. אך במידה וקיבלתי שתי מחלקות גדולות לא ייתכן לכתוב:
שורה א שווה לשורה א במופע החדש, שורה ב שווה לשורה ב במופע החדש. וגם במידה ולא ידוע לי המאפיינים של המחלקה, אז מה נכתוב?
בשביל לבצע השמה של מחלקה לתוך מחלקה נשתמש בלולאת foreach שתעבור על כל המחלקה, ותקבל כל שם מאפיין בנפרד, ותבצע השמה לתוך המאפיין בתוך המחלקה הראשית:
public master()
{ }
public int Id { get; set; }
public string Title { get; set; }
עכשיו נניח אנחנו רוצים ליצור מופע למחלקה ולהכניס ערכים.
פשוט:
master MASTER = new master();
MASTER.Id = 1;
MASTER.Title = "blabla";
במידה וקיבלנו אובייקט אחרnew_MASTER שגם מכיל את המאפיינים ID, Title. נוכל לעשות השוואה בין המופעים, ולעדכן את הערכים.
MASTER.Id = new_MASTER.Id;
MASTER.Title = new_MASTER.Title;
כל זה מקסים, כאשר: 1. יש לי קצת ערכים 2. אני יודע מהם. אך במידה וקיבלתי שתי מחלקות גדולות לא ייתכן לכתוב:
שורה א שווה לשורה א במופע החדש, שורה ב שווה לשורה ב במופע החדש. וגם במידה ולא ידוע לי המאפיינים של המחלקה, אז מה נכתוב?
MASTER.??? = ?
בשביל לבצע השמה של מחלקה לתוך מחלקה נשתמש בלולאת foreach שתעבור על כל המחלקה, ותקבל כל שם מאפיין בנפרד, ותבצע השמה לתוך המאפיין בתוך המחלקה הראשית:
Type type = MASTER.GetType();
foreach (var item in new_MASTER.GetDynamicMemberNames())
{
System.Reflection.PropertyInfo prop =
type.GetProperty(item); //name item
prop.SetValue(MASTER, new_MASTER[item], null); // value item to MASTER
}
אין תגובות:
הוסף רשומת תגובה