我创建了一个带有布尔属性和集合的对象。
我的所作所为:
我有一个在post上调用的方法,后者又调用另一个返回对象的方法。我的问题是我没有得到对象属性。
public object methodThatReturnsAnObject(string a, string b)
{
object data = new {isSaved = false, personsToCredit = ""}
// perform my code and if all is valid i set values to my object properties and return the object
data = new {isSaved = valid, personsToCredit = persons }
return data;
}
我的另一种方法:
object Information = methodThatReturnsAnObject(string a, string b);
我的问题是什么?
当我调试Information
对象包含我想要触及的两个属性但是当我键入Information.isSaved
时它表示该信息不包含isSaved
的定义?
答案 0 :(得分:7)
您希望编译器知道您的对象将具有这些动态属性。
这只是您必须正确使用的基本面向对象。
您需要做的是(1)定义具有两个属性的特定类,并让您的方法返回该类,或者(2)使用dynamic
而不是object
。
方法#1的例子:
public class UpdateInfo
{
public bool IsSaved {get; set;}
...
}
public UpdateInfo MethodThatReturnsUpdateInfo(string a, string b)
{
...
}
只有在你不能使用方法#1的情况下才应该使用dynamic
,但我会说在99.9%的情况下,方法#1是可行的方法。