expandoobject получить значение переменной
От: Funny Rabbit Россия  
Дата: 08.06.22 12:02
Оценка:
Собственно сабэ. Как это сделать и покрасивее?
То что меня не убивает, делает меня умнее.
Re: expandoobject получить значение переменной
От: vaa https://www.youtube.com/playlist?list=PLtrvASfI1KW7VOYRKjglcagQzWLoxlncl
Дата: 09.06.22 01:16
Оценка:
Здравствуйте, Funny Rabbit, Вы писали:

FR>Собственно сабэ. Как это сделать и покрасивее?


dynamic x = new ExpandoObject();
Re[2]: expandoobject получить значение переменной
От: Funny Rabbit Россия  
Дата: 10.06.22 12:05
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>Здравствуйте, Funny Rabbit, Вы писали:


FR>>Собственно сабэ. Как это сделать и покрасивее?


vaa>dynamic x = new ExpandoObject();<br /> <span class='lineQuote level1'>vaa&gt;</span>


Не удалось привести тип объекта "System.Dynamic.ExpandoObject" к типу "System.Collections.Generic.List`1[System.Object]".

private DataRow SaveHostToDataRow(IDictionary<string, object> dict, DataTable dt)
{
string route = ((IDictionary<string, object>)((List<object>)dict["inventory"])[0])["site_city"].ToString();
}

Как в данном случает получить значение? Вот это выполняется.


private DataRow SaveHostToDataRow(IDictionary<string, object> dict, DataTable dt)
{
string ip = ((IDictionary<string, object>)((List<object>)dict["interfaces"])[0])["ip"].ToString();
}
То что меня не убивает, делает меня умнее.
Re[3]: expandoobject получить значение переменной
От: Sinclair Россия http://corp.ingrammicro.com/Solutions/Cloud.aspx
Дата: 10.06.22 13:39
Оценка: 6 (1)
Здравствуйте, Funny Rabbit, Вы писали:

FR>Не удалось привести тип объекта "System.Dynamic.ExpandoObject" к типу "System.Collections.Generic.List`1[System.Object]".

private DataRow SaveHostToDataRow(IDictionary<string, object> dict, DataTable dt)
{
   dynamic inventory = dict["inventory"];
   string route = inventory.site_city;
}

Для начала невредно бы проверить, что у вас там лежит:
foreach (var property in (IDictionary<String, Object>)inventory)
{
    Console.WriteLine(property.Key + ": " + property.Value);
}

FR>Как в данном случает получить значение? Вот это выполняется.

Я же правильно понял, что вы свой ExpandoObject передаёте в SaveHostToDataRow?
Тогда пишите вот так:
private DataRow SaveHostToDataRow(dynamic dict, DataTable dt)
{
  string ip = dict.interfaces[0].ip;
}
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
http://rsdn.org/File/5743/rsdnaddict.GIF
Отредактировано 10.06.2022 13:54 Sinclair . Предыдущая версия .
Re[4]: expandoobject получить значение переменной
От: Funny Rabbit Россия  
Дата: 11.06.22 04:24
Оценка:
Здравствуйте, Sinclair, Вы писали:

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>

interfaces: System.Collections.Generic.List`1[System.Object]

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 или ссылка на сборку).
То что меня не убивает, делает меня умнее.
Отредактировано 11.06.2022 4:40 Funny Rabbit . Предыдущая версия .
Re[4]: expandoobject получить значение переменной
От: Funny Rabbit Россия  
Дата: 11.06.22 05:09
Оценка: 12 (1)
Здравствуйте, Sinclair, Вы писали:

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>

Спасибо. Это помогло.
То что меня не убивает, делает меня умнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.