public void AddBaseClass(ITypeSyntaxBuilder builder, Type classType) { if (!classType.IsClass && !classType.IsInterface) { throw new InvalidOperationException(classType.ToString() + " is not a valid class type or interface."); } lock (syncObj) { //Check if there is already a baseclass if (hasBaseclass && classType.IsClass) { throw new InvalidOperationException("A type may only derive from a single base class."); } else { rosylnClassUnit = rosylnClassUnit.AddBaseListTypes(SyntaxFactory.SimpleBaseType(builder.GenerateFrom(classType))); hasBaseclass = hasBaseclass || classType.IsClass; } } }
public void AddBaseClass <TClassType>(ITypeSyntaxBuilder builder) where TClassType : class { AddBaseClass(builder, typeof(TClassType)); }