由于其保护级别无法访问

pet*_*ter 2 .net c# listview

我在列表视图中显示版本(WrmVersion)值,但在这里我给出一个编码意味着如果版本(WrmVersion)为null我显示'无'(ResourcePolicyAvailSystemsLVI.m_nullString ="无"),但现在我得到一个错误

'Ship.Controls.ResourcePolicySystemsControl.ResourcePolicyAvailSystemsLVI.m_nullString'由于其保护级别而无法访问F:\ test\Ship\Controls\ResourcePolicySystemsControl.cs 81 70 Ship.Controls

protected override void OnUpdate()
         {
            string func = "ResourcePolicySystemsLVI.OnUpdate";
            try
            {
               if(Data != null)
               {
                  Text = base.Data.Name;
                  if(SubItems.Count == 1)
                  {
                      if (Data.WrmVersion == null)
                      {
                          SubItems.Add(ResourcePolicyAvailSystemsLVI.m_nullString);
                      }
                      else
                          **SubItems.Add(((IResourcePolicy)Data).WrmVersion.ToString());**
                     SubItems.Add(((IResourcePolicy)Data).ResourcePolicyEnabled.ToString());
                     SubItems.Add(((IResourcePolicy)Data).ResourcePolicyCurrent.ToString());
                     //SubItems.Add(((IResourcePolicy)Data).WrmVersion.ToString());
                     //SubItems.Add(Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\Unisys\Single Point Operations Windows Resource Monitor", "CurrentVersion", "0").ToString()); 
                  }
                  else
                  {
                     SubItems[1].Text = ((IResourcePolicy)Data).ResourcePolicyEnabled.ToString();
                     SubItems[2].Text = ((IResourcePolicy)Data).ResourcePolicyCurrent.ToString();
                  }
               }
               base.OnUpdate();
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 11

那么,什么保护水平ResourcePolicyAvailSystemsLVI.m_nullString?你的代码在哪里?例如,如果无法访问它

  • 它是private,你在一个不相关的课堂上
  • 它是protected,你不在一个子类
  • 它是internal和你在一个不同的集会没有[InternalsVisibleTo]
  • 它是,protected internal并且上述两个都适用

说实话,它看起来像一个字段,字段通常不是public- 所以如果有人改变了可访问性,可能会添加一个公共静态属性来包装它,或者只是更改名称(尽管如此)给出不同的错误).尝试寻找ResourcePolicyAvailSystemsLVI.NullString或类似(在intellisense/object-browser中).


你的评论; 你有:

private static string m_nullString =
    Managers.ControlStrings.GetString("ManagedDeviceWizard.None");
Run Code Online (Sandbox Code Playgroud)

所以只需添加:

public static string NullString {get {return m_nullString;}}
Run Code Online (Sandbox Code Playgroud)

并更改您要使用的调用代码ResourcePolicyAvailSystemsLVI.NullString.