Example #1
0
        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;
                }
            }
        }
Example #2
0
 public void AddBaseClass <TClassType>(ITypeSyntaxBuilder builder)
     where TClassType : class
 {
     AddBaseClass(builder, typeof(TClassType));
 }