我在列表视图中显示版本(WrmVersion)值,但在这里我给出了一个编码 意味着如果版本(WrmVersion)为空我显示'无'(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();
答案 0 :(得分:11)
那么 <{1}}的保护级别是什么?你的代码在哪里?例如,如果
,将无法访问ResourcePolicyAvailSystemsLVI.m_nullString
,而你是一个无关的班级private
而您不属于子类protected
并且您在没有[internal
InternalsVisibleTo]
,上述两个都适用说实话,看起来就像一个字段,字段一般不是protected internal
- 所以如果有人改变了我就不会感到惊讶可访问性,可能添加一个公共静态属性来包装它 - 或者只是更改名称(尽管这会产生不同的错误)。尝试寻找public
或类似的(在intellisense / object-browser中)。
重新评论;你有:
ResourcePolicyAvailSystemsLVI.NullString
所以只需添加:
private static string m_nullString =
Managers.ControlStrings.GetString("ManagedDeviceWizard.None");
并将您的调用代码更改为使用public static string NullString {get {return m_nullString;}}
。
答案 1 :(得分:2)
您无法添加:
ResourcePolicyAvailSystemsLVI.m_nullString
因为该成员的范围是私人或内部。
您需要将其公开(或理想情况下,通过属性公开)。