public InterfaceConfiguration AddContract(TypeInfo type, bool internalVisibility) { if (type == null) { return(null); } if (!type.IsInterface) { return(null); } if (Contracts.FirstOrDefault(existing => existing.Contract == type.FullName) != null) { return(null); } InterfaceConfiguration c = new InterfaceConfiguration { Parent = this, Contract = type.FullName, Modifier = internalVisibility ? "internal" : "public", ForceAsyncMethod = true, ForceSyncMethod = true, Namespace = type.Namespace }; Contracts.Add(c); return(c); }
public IEnumerable <InterfaceConfiguration> AddAllContracts(bool internalVisibility) { foreach (var type in AssemblyCache.GetTypes()) { InterfaceConfiguration contract = AddContract(type.GetTypeInfo(), internalVisibility); if (contract != null) { yield return(contract); } Console.WriteLine($"Contract '{type.Name.Bold()}' added."); } }