public override object Clone() { KlocekPionowyZZawartością kopia = (KlocekPionowyZZawartością)base.Clone(); foreach (KlocekPionowy klocekPionowy in Zawartość) { KlocekPionowy kopiaKlockaPionowego = (KlocekPionowy)klocekPionowy.Clone(); kopiaKlockaPionowego.Rodzic = kopia; kopia.Zawartość.Add(kopiaKlockaPionowego); } return(kopia); }
public void PrzeczytajZXml(XElement elementXml, Konsola konsola, Semafor semafor, ObservableCollection <Zmienna> zmienne) { foreach (PropertyInfo właściwość in GetType().GetProperties()) { Type typWłaściwości = właściwość.PropertyType; XElement węzełWłaściwości = elementXml.Element(właściwość.Name); if ((węzełWłaściwości != null) && !węzełWłaściwości.IsEmpty) { if (właściwość.GetSetMethod() == null) { if (typWłaściwości == typeof(WartośćWewnętrznegoKlockaZwracającegoWartość)) { XElement węzełWartości = węzełWłaściwości.Elements().Single(); Type typKlockaZwracającegoWartość = Type.GetType(węzełWartości.Name.LocalName); if (typKlockaZwracającegoWartość != null) { KlocekZwracającyWartość klocekZwracającyWartość = (KlocekZwracającyWartość)Activator.CreateInstance(typKlockaZwracającegoWartość); WartośćWewnętrznegoKlockaZwracającegoWartość wartość = (WartośćWewnętrznegoKlockaZwracającegoWartość)właściwość.GetValue(this); klocekZwracającyWartość.MiejsceUmieszczenia = wartość; wartość[0] = klocekZwracającyWartość; klocekZwracającyWartość.PrzeczytajZXml(węzełWartości, konsola, semafor, zmienne); } } else if (typWłaściwości == typeof(ZawartośćKlockaPionowegoZZawartością)) { foreach (XElement węzełKlockaPionowego in węzełWłaściwości.Elements()) { Type typKlockaPionowego = Type.GetType(węzełKlockaPionowego.Name.LocalName); if (typKlockaPionowego != null) { KlocekPionowy klocekPionowy = (KlocekPionowy)Activator.CreateInstance(typKlockaPionowego); klocekPionowy.Rodzic = (KlocekPionowyZZawartością)this; ZawartośćKlockaPionowegoZZawartością zawartość = (ZawartośćKlockaPionowegoZZawartością)właściwość.GetValue(this); klocekPionowy.PrzeczytajZXml(węzełKlockaPionowego, konsola, semafor, zmienne); zawartość.Add(klocekPionowy); } } } } else { if (typWłaściwości == typeof(KlocekPionowyZZawartością)) { } else if (typWłaściwości == typeof(Konsola)) { właściwość.SetValue(this, konsola); } else if (typWłaściwości == typeof(Semafor)) { właściwość.SetValue(this, semafor); } else if (typWłaściwości == typeof(WartośćWewnętrznegoKlockaZwracającegoWartość)) { } else if (typWłaściwości == typeof(Zmienna)) { właściwość.SetValue(this, zmienne.Single(z => z.Nazwa == węzełWłaściwości.Value)); } else if ((typWłaściwości == typeof(bool)) || (typWłaściwości == typeof(double)) || (typWłaściwości == typeof(string))) { właściwość.SetValue(this, Convert.ChangeType(węzełWłaściwości.Value, typWłaściwości)); } else { Type typOpcji = Type.GetType(węzełWłaściwości.Value); if (typOpcji != null) { właściwość.SetValue(this, Activator.CreateInstance(typOpcji)); } } } } } }
public override object Clone() { KlocekPionowy kopia = (KlocekPionowy)base.Clone(); return(kopia); }