2009-12-04 169 views
2

我在列表視圖中顯示版本(WrmVersion)值,但這裏我給出了一個編碼 意味着如果版本(WrmVersion)爲空,我顯示'None'(ResourcePolicyAvailSystemsLVI.m_nullString =「None 「),,但現在我得到一個錯誤無法訪問

‘Ship.Controls.ResourcePolicySystemsControl.ResourcePolicyAvailSystemsLVI.m_nullString’不可訪問由於其保護級別F:\測試\船舶\控件\ ResourcePolicySystemsControl.cs 81有70艘.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(); 
+0

重新您的評論 - 如果這意味着你在「分類」,或者如果你還是輸了,我不知道嗎?例如...只需添加一個屬性(見更新) – 2009-12-04 07:10:18

回答

2

不能添加:

ResourcePolicyAvailSystemsLVI.m_nullString 

,因爲成員的範圍是私人或內部。

你需要把它公開(或理想情況下,通過一個屬性將其公開)。

+0

正是這就是我的錯,,其實有兩個列表視圖,在那裏,我複製了從第二列表視圖到列表視圖定義的類被改變 多了需要聲明的字符串列表視圖首 的意思就是像這樣的公共類ResourcePolicySystemsLVI:BaseLVItem { #region Fields private static string m_nullString = Managers.ControlStrings.GetString(「ManagedDeviceWizard。無「); #endregion場 – peter 2009-12-04 06:31:27

11

那麼,的保護等級ResourcePolicyAvailSystemsLVI.m_nullString?你的代碼在哪裏?這將是無法訪問,例如如果

  • private,你在一個無關類是
  • protected和你在一個子類
  • internal不是你的是無[InternalsVisibleTo]
  • 不同的裝配是protected internal並且兩個上述兩種的應用

坦率地說,它看起來像一個字段,字段一般public - 所以,如果有人改變了無障礙設施,也許增加一個公共靜態屬性來包裝它,它不會給我帶來驚喜 - 或者乾脆改了名字(儘管這給出不同的錯誤)。嘗試尋找ResourcePolicyAvailSystemsLVI.NullString或相似(在智能感知/對象瀏覽器)。


重新發表您的評論;您有:

private static string m_nullString = 
    Managers.ControlStrings.GetString("ManagedDeviceWizard.None"); 

所以只需添加:

public static string NullString {get {return m_nullString;}} 

,改變你的調用代碼使用ResourcePolicyAvailSystemsLVI.NullString

+0

正是這就是我的錯,,其實有兩個列表視圖,在那裏,我複製了從第二列表視圖到列表視圖定義的類被改變 更在需要申報的字符串 意味着這樣的第一列表視圖公共類ResourcePolicySystemsLVI:BaseLVItem { #地區字段 私人靜態字符串m_nullString = Managers.ControlStrings.GetString( 「ManagedDeviceWizard.None」); #endregion字段 – peter 2009-12-04 06:32:02