如何从对象获取属性?

时间:2013-09-16 08:17:25

标签: c# asp.net

我创建了一个带有布尔属性和集合的对象。

我的所作所为:

我有一个在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的定义?

1 个答案:

答案 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是可行的方法。