【问题标题】:How to get the value of non public member如何获取非公共成员的价值
【发布时间】:2018-04-26 20:01:31
【问题描述】:

如何在 C# 中使用 OPCDA.NET 获取 OPCGroup 的非公共成员的值

private void DataChangeHandler(object sender, DataChangeEventArgs e)
{
   try
   {
       object obj = sender;
       OpcGroup grp = (OpcGroup)sender; // I want the OPCgroup non public member value

       if (InvokeRequired)
       {
           BeginInvoke(new DataChangeEventHandler(DataChangeHandler), 
                       new object[] { sender, e });
           //return;
       }
       if (parameter.X == 0)
       {
           parameter.X = 1;
           Thread th = new Thread(param.update);
           th.Start(e);
       }
   }
   catch(OPCException ) { }
}

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    您不应该尝试使用非公共成员。如果代码的作者隐藏了它,你应该假设:

    • 他们不希望您访问它,至少不直接访问。
    • 实施可能随时发生变化,您的代码应该可以继续工作。

    可以使用反射来访问非公共成员(假设在执行时具有适当的权限),但如果可能的话,我强烈建议您不要这样做。

    【讨论】:

      猜你喜欢
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 2010-09-06
      相关资源
      最近更新 更多