我试图序列化,我从System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
Newtonsoft JSON:我如何序列化不是字符串,整数,等...(如NetworkInterface的)
GetAllNetworkInterfaces()
获取信息返回集合一些.NET对象NetworkInterface
对象。序列化它基本上没有返回有用的信息。
{
"IsReceiveOnly": false,
"Description": "TAP-Windows Adapter V9",
"SupportsMulticast": true,
"NetworkInterfaceType": 6,
"OperationalStatus": 2,
"Speed": 100000000,
"Id": "{BCE79C39-232A-4483-AF64-1D26E3AA7C83}",
"Name": "Ethernet"
},
etc...
每个NetworkInterface
对象具有如下功能:GetIPProperties
它返回一个IPInterfaceProperties
对象又具有一个GetIPv4Properties()
函数返回一个IPv4InterfaceProperties
对象。
我看到了许多向类属性添加属性的示例,告诉Newtonsoft JSON序列化非正常字符串,整数,布尔等等的属性,甚至序列化来自函数调用的结果,但我难倒我如何可以指出现有的.NET对象。
我现在也很痛苦的解决方法是创建自己的MyNetworkInterface
类我想要的属性,然后手动分配样特性:
for each adapter as NetworkInterface in NetworkInterface.GetAllNetworkInterfaces()
my_custom_network_interface_object.some_property = real_network_interface_object.some_property
dim ip_properties() as IPInterfaceProperties = real_network_interface_object.GetIPProperties()
dim gateway_info() as GatewayIPAddressInformationCollection = ip_properties.GatewayAddresses
for gw in gateway_info
my_custom_network_interface_object.gateway.add(gw.ToString())
好像应该有更好的方式,和我只是想念它。
从Python的背景来看,我觉得完全迷失在VB.NET中。 :)
这正是我所错过的。谢谢你+马特约翰逊。 –
我一直在'jObj.Add(“IPProperties”,JObject.FromObject(properties))''行得到一个System.NullReferenceException异常。如果我调用'Debug.WriteLine(JObject.FromObject(properties))',它会引发同样的错误。 'properties'肯定是一个有效的对象,因为我可以'debug.writeline(properties.blah)'这里blah是可以在对象上调用的每个属性和函数。 –
嗯......也许这是窒息在另一个子属性。你添加了两个转换器吗?可能还需要另一个,具体取决于计算机上适配器数据的外观。上述作品在我的笔记本电脑上,但每台机器可能会有所不同。 –