迭代属性

时间:2012-09-12 15:16:28

标签: c#

我一直在研究迭代属性,并提出了一个似乎有效的基本解决方案,但并不能完全满足我的需求。我正在调用WebService方法,该方法返回具有大量属性的PeopleSoft对象。这些属性中的每一个都返回一些模糊类型的对象,这些对象需要花费太多时间单独进行类型转换。我的代码工作,它迭代属性,但它不显示值。以下是visual studio为其中一个属性生成的自动生成代码。

public SETIDTypeShape5 SETID {
        get {
            return this.sETIDField;
        }
        set {
            this.sETIDField = value;
        }
    }

我猜测SETIDTypeShape5没有正确的ToString()方法,因为当它被打印时,它显示的全部是SETIDTypeShape5。我知道它有一个与之关联的Value属性,但有没有办法访问该值?这是我到目前为止的代码,以及一些输出的样子。

                Type getType = idResponseTypeShape.GetType();

            foreach (PropertyInfo info in getType.GetProperties(BindingFlags.Instance | BindingFlags.Public))
            {
                String name = info.Name;
                object value = info.GetValue(idResponseTypeShape, null);
                Debug.WriteLine("{0} = {1}", name, value);
            }

SETID = VendorMod.edu.clcillinois.fs3.SETIDTypeShape5
VENDOR_ID = VendorMod.edu.clcillinois.fs3.VENDOR_IDTypeShape5
VENDOR_NAME_SHORT = VendorMod.edu.clcillinois.fs3.VENDOR_NAME_SHORTTypeShape3
VNDR_NAME_SHRT_USR = VendorMod.edu.clcillinois.fs3.VNDR_NAME_SHRT_USRTypeShape1
VNDR_NAME_SEQ_NUM = VendorMod.edu.clcillinois.fs3.VNDR_NAME_SEQ_NUMTypeShape1
NAME1 = VendorMod.edu.clcillinois.fs3.NAME1TypeShape3
NAME2 = VendorMod.edu.clcillinois.fs3.NAME2TypeShape1
VENDOR_STATUS = VendorMod.edu.clcillinois.fs3.VENDOR_STATUSTypeShape1

我不确定我是否在彻底解释它,但我基本上是在寻找一种方法来获取每个TypeShapes的值,而无需手动将每一个明确地转换为正确的对象。这甚至可能吗?

0 个答案:

没有答案