Класс недоступен из-за уровня защиты

У меня есть три класса. все являются частью одного и того же пространства имен. Вот основы трех классов.

//FBlock.cs
namespace StubGenerator.PropGenerator
{
    class FBlock : IDesignRegionInserts, IFormRegionInserts, IAPIRegionInserts,  IConfigurationInserts, ISoapProxyClientInserts, ISoapProxyServiceInserts
    {
        private List<Property> pProperties;
        private List<Method> pMethods;
        public FBlock(string aFBlockName)
        { 
            pProperties = new List<Property>();
            pMethods = new List<Method>();
        }

        public Property AddProperty(string aName)
        {
            Property loProp = new Property(this, aName, pProperties.Count);
            pProperties.Add(loProp);
            return loProp;
         }

         public Method AddMethod(string aName)
         {
             Method loMeth = new Method(this, aName);
             pMethods.Add(loMeth);
             return loMeth;
         }
     }

 //Method.cs
 namespace StubGenerator.PropGenerator
 {
     class Method : IPropertyName
     {
         private List<StubGenerator.PropGenerator.PropertyAttribute> pPropertyAttributes;
         private string pName;
         private string pFBlockName;

         public Method(FBlock aFBlock,string aName)
         {
             pPropertyAttributes = new List<PropertyAttribute>();
             pName = aName;
             pFBlockName = aFBlock.Name;
         }
      }
 }

 //Property.cs
 namespace StubGenerator.PropGenerator
 {
    class Property : StubGenerator.PropGenerator.IPropertyName, StubGenerator.PropGenerator.IDesignRegionInserts, StubGenerator.PropGenerator.IFormRegionInserts, IAPIRegionInserts, IConfigurationInserts, ISoapProxyClientInserts, ISoapProxyServiceInserts
    {
        private string pName;
        private string pExpandedName;
        private string pFBlockInitials;

        private Group pPropertyGroup;
        private FlowLayoutPanel pGroupFlowPanel;
        private Button pUpdateButton;
        private CheckBox pShowProperty;


         private string pFBlockName;


         public Property(FBlock aFBlock, string aName, int aIndex)
         {
             pPropertyAttributes = new List<PropertyAttribute>();
             pFBlockName = aFBlock.FBlockName;

             ExpandName();
             GetInitials();

             pShowProperty = new CheckBox(this, 10, (aIndex + 1) * 20, aIndex);
             pPropertyGroup = new Group(this);
             pGroupFlowPanel = new FlowLayoutPanel(this);

             pUpdateButton = new Button(this, 10, 18, aIndex);
         }
     }
}

Я получаю следующие ошибки

StubGenerator.PropGenerator.Method недоступен из-за уровня защиты

которая ссылается на следующую строку в файле FBlock.cs

private List<Method> pMethods;

а также

StubGenerator.PropGenerator.Method недоступен из-за уровня защиты

которая ссылается на следующую строку в файле FBlock.cs

 public Method AddMethod(string aName)

а также

Непоследовательная доступность: тип возвращаемого значения 'StubGenerator.PropGenerator.Method' менее доступен, чем метод 'StubGenerator.PropGenerator.FBlock.AddMethod (string)'

которая ссылается на следующую строку в файле FBlock.cs

 public Method AddMethod(string aName)

сделав метод класса публичным, ошибки не устраняются. Я не могу понять, почему я не получаю ошибки при вызове класса Property. И я не понимаю, почему обнародование класса Method не решает проблему.

Есть идеи?

Отредактировано, чтобы спросить. Может ли быть какой-то параметр в файле, который вызывает это?

Ответы на вопрос(8)

Ваш ответ на вопрос