В коде компилятор подчёркивает ошибку в классе в следующей строке:
public FWProtocol Protocol { get; set; }
Error CS0053 Inconsistent accessibility: property type ‘FWProtocol’ is less accessible than property ‘FirewallRule.Protocol’
Данную ошибку я редко, но встречаю. Причина этого в том, что, при создании класса FWProtocol был сгенерирован файл, в котором модификатор класса был не public, а internal, а я не обратил внимание и не заменил его:
internal class FWProtocol
{
public FirewallProtocol Protocol;
public FWProtocol() { }
public FWProtocol(FirewallProtocol protocol)
{
Protocol = protocol;
}
}
Для исправления этой ошибки нужно было сменить модификатор на public. Чтобы в будущем на наступать опять на эти грабли, я решил исправить сам шаблон нового класса:
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
$endif$
namespace $rootnamespace$
{
class $safeitemrootname$
{
}
}
Добавляем модификатор public в этот шаблон:
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
$endif$
namespace $rootnamespace$
{
public class $safeitemrootname$
{
}
}