public void Compile() { Assembly assembly = Assembly.LoadFrom(Configuration.InputPath); var markerAttribute = GetAssemblyAttribute(assembly); foreach (var type in markerAttribute.Types ?? Enumerable.Empty <Type>()) { var head = new CSharpNode(type.Name, TypeConversion.FromCSharpReflection(type)); if (head.CSNodeType.Equals(CSharpNodeType.None)) { continue; } head.Visibility = Visibility.Public; Heads.Add(head); foreach (var property in type.GetProperties()) { InsertPropertyNodeInTree(property); } Trees.Add(Generator.GetSyntaxTree(head)); } Trees.ForEach(tree => Generator.LinkingResolver.Resolve(tree)); }