Сообщение Re[4]: expandoobject получить значение переменной от 11.06.2022 4:24
Изменено 11.06.2022 4:40 Funny Rabbit
Re[4]: expandoobject получить значение переменной
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Funny Rabbit, Вы писали:
FR>>Не удалось привести тип объекта "System.Dynamic.ExpandoObject" к типу "System.Collections.Generic.List`1[System.Object]".
S>
S>Для начала невредно бы проверить, что у вас там лежит:
S>
https://172.31.0.196/zabbix/api_jsonrpc.php 10423 APC 961X-172.20.225.67 APC 961X_5YR0#ЦОУ Ярославское ш. 135 п1. (172.20.225.67) System.Collections.Generic.List`1[System.Object] System.Collections.Generic.List`1[System.Object] System.Collections.Generic.List`1[System.Object]
-------------
https://172.31.0.196/zabbix/api_jsonrpc.php hostid host name triggers inventory interfaces
FR>>Как в данном случает получить значение? Вот это выполняется.
S>Я же правильно понял, что вы свой ExpandoObject передаёте в SaveHostToDataRow?
S>Тогда пишите вот так:
S>
1>C:\Users\polya\Desktop\AS\AbonentSearch\OSS\BLL\Internet\Commutators\ZabbixApi\Zabbix.cs(491,41,491,51): error CS1061: "IDictionary<string, object>" не содержит определения "interfaces", и не удалось найти доступный метод расширения "interfaces", принимающий тип "IDictionary<string, object>" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
S>Здравствуйте, Funny Rabbit, Вы писали:
FR>>Не удалось привести тип объекта "System.Dynamic.ExpandoObject" к типу "System.Collections.Generic.List`1[System.Object]".
S>
S>private DataRow SaveHostToDataRow(IDictionary<string, object> dict, DataTable dt)
S>{
S> dynamic inventory = dict["inventory"];
S> string route = inventory.site_city;
S>}
S>S>Для начала невредно бы проверить, что у вас там лежит:
S>
S>foreach (var property in (IDictionary<String, Object>)inventory)
S>{
S> Console.WriteLine(property.Key + ": " + property.Value);
S>}
S>https://172.31.0.196/zabbix/api_jsonrpc.php 10423 APC 961X-172.20.225.67 APC 961X_5YR0#ЦОУ Ярославское ш. 135 п1. (172.20.225.67) System.Collections.Generic.List`1[System.Object] System.Collections.Generic.List`1[System.Object] System.Collections.Generic.List`1[System.Object]
-------------
https://172.31.0.196/zabbix/api_jsonrpc.php hostid host name triggers inventory interfaces
FR>>Как в данном случает получить значение? Вот это выполняется.
S>Я же правильно понял, что вы свой ExpandoObject передаёте в SaveHostToDataRow?
S>Тогда пишите вот так:
S>
S>private DataRow SaveHostToDataRow(dynamic dict, DataTable dt)
S>{
S> string ip = dict.interfaces[0].ip;
S>}
S>1>C:\Users\polya\Desktop\AS\AbonentSearch\OSS\BLL\Internet\Commutators\ZabbixApi\Zabbix.cs(491,41,491,51): error CS1061: "IDictionary<string, object>" не содержит определения "interfaces", и не удалось найти доступный метод расширения "interfaces", принимающий тип "IDictionary<string, object>" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
Re[4]: expandoobject получить значение переменной
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Funny Rabbit, Вы писали:
FR>>Не удалось привести тип объекта "System.Dynamic.ExpandoObject" к типу "System.Collections.Generic.List`1[System.Object]".
S>
S>Для начала невредно бы проверить, что у вас там лежит:
S>
-------------
https://172.31.0.196/zabbix/api_jsonrpc.php hostid host name triggers inventory interfaces
FR>>Как в данном случает получить значение? Вот это выполняется.
S>Я же правильно понял, что вы свой ExpandoObject передаёте в SaveHostToDataRow?
S>Тогда пишите вот так:
S>
1>C:\Users\polya\Desktop\AS\AbonentSearch\OSS\BLL\Internet\Commutators\ZabbixApi\Zabbix.cs(491,41,491,51): error CS1061: "IDictionary<string, object>" не содержит определения "interfaces", и не удалось найти доступный метод расширения "interfaces", принимающий тип "IDictionary<string, object>" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
S>Здравствуйте, Funny Rabbit, Вы писали:
FR>>Не удалось привести тип объекта "System.Dynamic.ExpandoObject" к типу "System.Collections.Generic.List`1[System.Object]".
S>
S>private DataRow SaveHostToDataRow(IDictionary<string, object> dict, DataTable dt)
S>{
S> dynamic inventory = dict["inventory"];
S> string route = inventory.site_city;
S>}
S>S>Для начала невредно бы проверить, что у вас там лежит:
S>
S>foreach (var property in (IDictionary<String, Object>)inventory)
S>{
S> Console.WriteLine(property.Key + ": " + property.Value);
S>}
S>https://172.31.0.196/zabbix/api_jsonrpc.php 10423 APC 961X-172.20.225.67 APC 961X_5YR0#ЦОУ Ярославское ш. 135 п1. (172.20.225.67) System.Collections.Generic.List`1[System.Object] System.Collections.Generic.List`1[System.Object] System.Collections.Generic.List`1[System.Object]interfaces: System.Collections.Generic.List`1[System.Object]
-------------
https://172.31.0.196/zabbix/api_jsonrpc.php hostid host name triggers inventory interfaces
FR>>Как в данном случает получить значение? Вот это выполняется.
S>Я же правильно понял, что вы свой ExpandoObject передаёте в SaveHostToDataRow?
S>Тогда пишите вот так:
S>
S>private DataRow SaveHostToDataRow(dynamic dict, DataTable dt)
S>{
S> string ip = dict.interfaces[0].ip;
S>}
S>1>C:\Users\polya\Desktop\AS\AbonentSearch\OSS\BLL\Internet\Commutators\ZabbixApi\Zabbix.cs(491,41,491,51): error CS1061: "IDictionary<string, object>" не содержит определения "interfaces", и не удалось найти доступный метод расширения "interfaces", принимающий тип "IDictionary<string, object>" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).