相关疑难解决方法(0)

测试动态变量上的属性是否可用

我的情况很简单.在我的代码的某处我有这个:

dynamic myVariable = GetDataThatLooksVerySimilarButNotTheSame();

//How to do this?
if (myVariable.MyProperty.Exists)   
//Do stuff
Run Code Online (Sandbox Code Playgroud)

所以,基本上我的问题是如何检查(不抛出异常)我的动态变量上有某个属性可用.我可以做,GetType()但我宁愿避免,因为我真的不需要知道对象的类型.我真正想知道的是一个属性(或方法,如果让生活更轻松)是可用的.有什么指针吗?

c# dynamic dynamic-keyword

217
推荐指数
7
解决办法
11万
查看次数

我如何反映动态对象的成员?

我需要从.NET 4中使用dynamic关键字声明的对象中获取属性及其值的字典?似乎使用反射这是行不通的.

例:

dynamic s = new ExpandoObject();
s.Path = "/Home";
s.Name = "Home";

// How do I enumerate the Path and Name properties and get their values?
IDictionary<string, object> propertyValues = ???
Run Code Online (Sandbox Code Playgroud)

c# reflection dynamic

123
推荐指数
4
解决办法
10万
查看次数

如何检查c#中动态匿名类型上是否存在属性?

我有一个匿名类型对象,我从一个方法接收动态,我想检查该对象上存在的属性.

....
var settings = new {
                   Filename="temp.txt",
                   Size=10
}
...

function void Settings(dynamic settings) {
var exists = IsSettingExist(settings,"Filename")
}
Run Code Online (Sandbox Code Playgroud)

我该如何实现IsSettingExist?

c# reflection dynamic .net-4.0 c#-4.0

112
推荐指数
7
解决办法
9万
查看次数

Newtonsoft JSON反序列化

我的JSON如下:

{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}
Run Code Online (Sandbox Code Playgroud)

我找到了针对C#的Newtonsoft JSON.NET反序列化库.我尝试使用它如下:

object JsonDe = JsonConvert.DeserializeObject(Json); 
Run Code Online (Sandbox Code Playgroud)

如何访问该JsonDe对象以获取所有"类型"数据?我尝试了一个循环,但它没有工作,因为该对象没有枚举器.

c# json.net deserialization

78
推荐指数
3
解决办法
22万
查看次数

将动态类型转换为字典C#

我有一个看起来像这样的动态对象,

 {
    "2" : "foo",
    "5" : "bar",
    "8" : "foobar"
 }
Run Code Online (Sandbox Code Playgroud)

我该如何将其转换为dictionary

c# json dictionary dynamic json.net

18
推荐指数
4
解决办法
4万
查看次数

检查C#Expando类中是否存在属性

我想看看C#Expando类中是否存在属性.

很像python中的hasattr函数.我想为hasattr提供c#equalant.

像这样的东西......

if (HasAttr(model, "Id"))
{
  # Do something with model.Id
}
Run Code Online (Sandbox Code Playgroud)

c# dynamic expandoobject

8
推荐指数
1
解决办法
9708
查看次数

如何安全地检查动态对象是否有字段

我正在寻找一个字段的动态对象上的一个属性循环,除了我无法弄清楚如何在不抛出异常的情况下安全地评估它是否存在.

        foreach (dynamic item in routes_list["mychoices"])
        {
            // these fields may or may not exist
           int strProductId = item["selectedProductId"];
           string strProductId = item["selectedProductCode"];
        }
Run Code Online (Sandbox Code Playgroud)

c#

8
推荐指数
2
解决办法
8093
查看次数

动态对象 - 如何判断是否定义了属性?

我有一个动态对象,如下所示:

this.ChartDetails.Chart
Run Code Online (Sandbox Code Playgroud)

'图表'是动态的.我想查看名为LeftYAxis的图表上是否存在动态属性.在动态对象上执行此操作的最佳方法是什么?

我不认为这是如何检测ExpandoObject上是否存在属性的重复因为它没有讨论为动态对象执行此操作的最佳方法.

c# dynamic

5
推荐指数
2
解决办法
1万
查看次数

无头镀铬打印pdf

我正在尝试使用Chrome的Headless功能将html转换为pdf.但是,我根本没有得到输出.控制台也不会显示任何错误.我在windows m/c中运行命令.

chrome --headless --disable-gpu --print-to-pdf

我尝试了各种各样的选择.什么都没有产生.我有60版铬

pdf google-chrome google-chrome-headless

2
推荐指数
4
解决办法
4075
查看次数

如何对具有ExpandoObject类型的对象应用扩展方法?

这是我的代码:

public static class DynamicExtensions

    public static void Add(this ExpandoObject obj, string path){
        dynamic _obj = obj;
        if (_obj == null) throw new ArgumentNullException("obj");
        _obj.path = path;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我以这种方式调用它时,我得到"'System.Dynamic.ExpandoObject'的错误不包含'Add'的定义":

dynamic obj = new ExpandoObject();
obj.Add("p1");
Run Code Online (Sandbox Code Playgroud)

怎么解决?

提前致谢!

c# extension-methods expandoobject

1
推荐指数
2
解决办法
2193
查看次数