我在列表视图中显示version(WrmVersion)值,但是在这里我给出了一个条件
意思是如果version(WrmVersion)为null我正在显示'None'(ResourcePolicyAvailSystemsLVI.m_nullString =“ None”),但是现在我得到了一个错误
由于保护级别为F:\ test \ Ship \ Controls \ ResourcePolicySystemsControl.cs 81'Ship.Controls.ResourcePolicySystemsControl.ResourcePolicyAvailSystemsLVI.m_nullString'无法访问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();
最佳答案
那么,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");
所以只需添加:
public static string NullString {get {return m_nullString;}}
并更改您的呼叫代码以使用
ResourcePolicyAvailSystemsLVI.NullString
。