/// <summary> /// Should be called after a node is created to set parent referneces /// This allows interfaces, volumes, etc. to poll through the provider /// </summary> public void SetReferences() { Interfaces?.ForEach(i => i.Node = this); Volumes?.ForEach(v => v.Node = this); Apps?.ForEach(a => a.Node = this); Services?.ForEach(s => s.Node = this); }
public virtual void Load() { CRUDFunctions.Load <Entity>(this); Fields.ForEach(e => e.Load()); Actions.ForEach(e => e.Load()); Enumerators.ForEach(e => e.Load()); Attributes.ForEach(e => e.Load()); Interfaces.ForEach(e => e.Load()); __Memento = GetData(); }
/// <summary> /// Should be called after a node is created to set parent referneces /// and removed ignored interfaces, volumes, etc. /// /// This allows interfaces, volumes, etc. to poll through the provider /// </summary> public void AfterInitialize() { if (Interfaces != null) { var ignoredInterfaceRegex = GetSetting(s => s.IgnoredInterfaceRegEx); if (ignoredInterfaceRegex != null) { Interfaces.RemoveAll(i => ignoredInterfaceRegex.IsMatch(i.Id)); } Interfaces.ForEach(i => i.Node = this); } Volumes?.ForEach(v => v.Node = this); Apps?.ForEach(a => a.Node = this); Services?.ForEach(s => s.Node = this); }
/// <summary> /// 文字列取得 /// </summary> /// <param name="index">前スペース数</param> /// <returns>文字列</returns> public override string ToString(int index = 0) { var result = new StringBuilder(); var indexSpace = string.Concat(Enumerable.Repeat(" ", index)); foreach (var comment in Comments) { result.Append(indexSpace); result.AppendLine($"{comment}"); } foreach (var modifier in Modifiers) { result.Append(indexSpace); result.Append($"{modifier} "); } result.Append($"interface {Name}"); // インターフェイス if (Interfaces.Any()) { result.Append(" : "); Interfaces.ForEach(item => { if (Interfaces.IndexOf(item) > 0) { result.Append(", "); } item.ForEach(expression => { result.Append(expression.Name); }); }); } result.AppendLine(); result.Append(indexSpace); result.AppendLine("{"); Members.ForEach(member => result.AppendLine(member.ToString(index + 1))); result.Append(indexSpace); result.AppendLine("}"); return(result.ToString()); }
public void Commit() { if (BaseType != null && BaseType == _bfCache.Types.First(t => t.FullName == "System.Object")) { BaseType.Commit(); Append(BaseType); BaseType.TypesUsed.ForEach(Append); } Interfaces.ForEach(Append); Fields.ForEach(t => t.TypesUsed.ForEach(Append)); Methods.ForEach(t => t.TypesUsed.ForEach(Append)); Events.ForEach(t => t.TypesUsed.ForEach(Append)); TypesUsed.Clear(); }
/// <summary> /// Store properties and methods of Type(obj) into a string /// </summary> /// <param name="includeSelfRefs"></param> /// <returns></returns> public string Info(bool includeSelfRefs) { /* Name [ArchType] : BaseType, Interface_1, ... * Classes: * NestedType_1_Name ... * Fields: * Field_1_Name [Field_1_Type] * <-- ReferencingTypeA:ReferencingMember_1 ... * Properties: * Property_1_Name [Property_1_Type] {get, set} * --> ReferencedTypeA::ReferencedMember_1 ... * <-- ReferencingTypeA:ReferencingMember_1 ... * Constructors: * Ctor_1_Name <Param_1_Name, ...> * ---> ReferencedTypeA::ReferencedMember_1 ... * <-- ReferencingTypeA:ReferencingMember_1 ... * Methods: * Method_1_Name [Method_1_ReturnType] <Param_1_Name, ...> * --> ReferencedTypeA::ReferencedMember_1 ... * <-- ReferencingTypeA:ReferencingMember_1 ... * Events: * Event_1_Name <Param_1_Name, ...> * --> ReferencedTypeA::ReferencedMember_1 ... * <-- ReferencingTypeA:ReferencingMember_1 ... */ string headIndent = "\n"; string info = $"{FullName} [{Elem}]"; if (Class.BaseType != null) { info += " : " + Class.BaseType.Name; } Interfaces.ForEach(I => info += $" , {I.Name}"); if (Members.Exists(M => M.Member.MemberType == MemberTypes.NestedType)) { info += $"{headIndent}Nested types:"; Members.FindAll(M => M.Member.MemberType == MemberTypes.NestedType) .ForEach(M => info += M.GetInfo(includeSelfRefs)); } if (Members.Exists(M => M.Member.MemberType == MemberTypes.Field && !M.Name.Contains("k__BackingField"))) { info += $"{headIndent}Fields:"; Members.FindAll(M => M.Member.MemberType == MemberTypes.Field && !M.Name.Contains("k__BackingField")) .ForEach(M => info += M.GetInfo(includeSelfRefs)); } if (Members.Exists(M => M.Member.MemberType == MemberTypes.Property)) { info += $"{headIndent}Properties:"; Members.FindAll(M => M.Member.MemberType == MemberTypes.Property) .ForEach(M => info += M.GetInfo(includeSelfRefs)); } if (Members.Exists(M => M.Member.MemberType == MemberTypes.Constructor)) { info += $"{headIndent}Constructors:"; Members.FindAll(M => M.Member.MemberType == MemberTypes.Constructor) .ForEach(M => info += M.GetInfo(includeSelfRefs)); } if (Members.Exists(M => M.Member.MemberType == MemberTypes.Method && !M.Name.Contains("get_") && !M.Name.Contains("set_"))) { info += $"{headIndent}Methods:"; Members.FindAll(M => M.Member.MemberType == MemberTypes.Method && !M.Name.Contains("get_") && !M.Name.Contains("set_")) .ForEach(M => info += M.GetInfo(includeSelfRefs)); } if (Members.Exists(M => M.Member.MemberType == MemberTypes.Event)) { info += $"{headIndent}Events:"; Members.FindAll(M => M.Member.MemberType == MemberTypes.Event) .ForEach(M => info += M.GetInfo(includeSelfRefs)); } // AllReferences(includeSelfRefs); //as backup return(info); }