0

我正在尝试使用#snmp (Lextm.SharpSnmpLib.9.0.1) 和C# 来监控系统运行时间。

这是我的代码:

        public int GetUptime()
    {
        var uptimeMessage = new GetNextRequestMessage(0, VersionCode.V1, new OctetString("public"),
            new List<Variable>
            {
                new Variable(new ObjectIdentifier(Oids.SystemUpTime))
            });
        var response = uptimeMessage.GetResponse(10000, _agentEndPoint);
        var ticks = response.Pdu().Variables[0].Data.ToString();
        return int.Parse(ticks);
    }

但是,当我尝试为 TimeTicks 类型的响应获取 .Data 属性时,我遇到了 CS0103 错误。

这是VS2015的检查窗口 在此处输入图像描述

如果这不是错误,我如何使用 #snmp 访问原始刻度值?

4

1 回答 1

1

通过查看这个库中的源代码,TimeTicks您可以看到该ToString方法实际上生成了一个基于 .NET 的字符串TimeSpan。这就是为什么当您尝试在int异常出现时对其进行解析的原因。

至于这个 OID,您已经知道应该DataTimeTicks其转换为该类型,然后调用ToUInt32.

于 2016-06-17T03:13:30.783 回答