如何使用 SharpSnmp 获取原始 TimeTicks?

How to obtain raw TimeTicks with SharpSnmp?

我正在尝试使用#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的检查Window

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

通过查看这个库中TimeTicks的源代码可以看到ToString方法实际上生成了一个基于.NETTimeSpan的字符串。这就是为什么当您尝试将其解析为 int 异常时。

至于这个 OID,你已经知道 Data 是一个 TimeTicks 你应该转换成那个类型然后调用 ToUInt32.