C#对象转换为字典<;字符串,对象>;
我的方法C#对象转换为字典<;字符串,对象>;,c#,C#,我的方法 parms.ValidationObject = new { validations = new Dictionary<string, object>() { { parms.JsonObjectName, modelValidations } } }; return parms.ValidationObject; 但我明白了 无法从“对象”转换为“System.Collections.Generic.IEnumerable>” 对字典的简单强制转换不起作用。我能
parms.ValidationObject = new { validations = new Dictionary<string, object>() { { parms.JsonObjectName, modelValidations } } };
return parms.ValidationObject;
但我明白了
无法从“对象”转换为“System.Collections.Generic.IEnumerable>”
对
字典的简单强制转换不起作用。我能做什么?在将其传递给Concat
之前,您需要对System.Collections.Generic.IEnumerable
进行验证,因为这是它所期望的
同时进行以下更改:
parms.ValidationObject = new Dictionary<string, object>() { parms.JsonObjectName, modelValidations };
parms.ValidationObject=new Dictionary(){parms.JsonObjectName,modelvidations};
在将其传递给Concat
之前,您需要对System.Collections.Generic.IEnumerable
进行验证,因为这是它所期望的
同时进行以下更改:
parms.ValidationObject = new Dictionary<string, object>() { parms.JsonObjectName, modelValidations };
parms.ValidationObject=new Dictionary(){parms.JsonObjectName,modelvidations};
您不清楚,但当您说“我的方法”时:
parms.ValidationObject=new{validations=newdictionary(){{{parms.JsonObjectName,modelvidations}};
返回parms.ValidationObject;
我假设您的意思是上面的代码是方法的实现,GetValidations
。如果是这样,那么问题在于方法的返回类型可能是对象
,因为它不能是parms.ValidationObject
的真实类型,因为这是一种匿名类型,不能从方法中泄漏出来
因此,我认为您真正的问题在于,您试图从外部方法使用在该匿名类型上定义的验证
属性。真的,你应该后退一步,停止这样做。如果您想在声明匿名类型的方法之外使用它,这意味着您犯了一个错误
相反,可以使用Tuple
变量来返回所需的值,使用out
参数,定义一个新的具体类型,或者只返回字典(parms.ValidationObject.validations
)本身——完全不清楚为什么在这里使用匿名类型,因为您只定义了一个属性。在任何情况下,您都不应尝试在声明类型的方法之外以静态方式与匿名类型交互。您不清楚,但当您说“我的方法”时:
parms.ValidationObject=new{validations=newdictionary(){{{parms.JsonObjectName,modelvidations}};
返回parms.ValidationObject;
我假设您的意思是上面的代码是方法的实现,GetValidations
。如果是这样,那么问题在于方法的返回类型可能是对象
,因为它不能是parms.ValidationObject
的真实类型,因为这是一种匿名类型,不能从方法中泄漏出来
因此,我认为您真正的问题在于,您试图从外部方法使用在该匿名类型上定义的验证
属性。真的,你应该后退一步,停止这样做。如果您想在声明匿名类型的方法之外使用它,这意味着您犯了一个错误
相反,可以使用Tuple
变量来返回所需的值,使用out
参数,定义一个新的具体类型,或者只返回字典(parms.ValidationObject.validations
)本身——完全不清楚为什么在这里使用匿名类型,因为您只定义了一个属性。在任何情况下,都不应尝试在声明类型的方法之外以静态方式与匿名类型交互。1)ValidationObject
不是您所说的对象的直接内容。它是匿名类型。2) 什么是GetValidations(nextParms)
1)ValidationObject
的返回类型,正如您所说,它不是对象的直接输入。它是匿名类型。2) GetValidations(nextParms)
的返回类型是什么?你怎么知道validations
的类型是什么?因为OP说他的方法在顶部返回它。然后他试图将它与另一本词典连接起来,错误也表明了这一点。你的评论也很有用,因为它不是dictionary的直接实例。你怎么知道验证的类型是什么?因为OP说他的方法在顶部返回它。然后他试图将它与另一本词典连接起来,错误也表明了这一点。你的评论也很有帮助,因为它不是字典的直接实例。
parms.ValidationObject = new { validations = new Dictionary<string, object>() { { parms.JsonObjectName, modelValidations } } };
return parms.ValidationObject;