public override void NamedBy(ITypeNameAndType reflectedType, string suffix)
 {
     base.NamedBy(reflectedType, suffix);
     if (reflectedType.TypeType != TypeType.Interface && reflectedType.Name.StartsWith("I"))
     {
         BaseTypeName = "I" + BaseTypeName;
     }
 }
    public InterfaceBuilder HasBaseInterface(ITypeNameAndType typeNameAndType)
    {
        if (typeNameAndType.TypeType != TypeType.Interface)
        {
            throw new InvalidOperationException("Interface can only have other interfaces as base types.");
        }

        TypeDescriptions.Add(typeNameAndType);
        return(this);
    }