如何在C#中获取通用方法的值

gie

我有这种通用方法:

public Guid Save<T>(T obj)
    {
        Guid newId = Guid.NewGuid();
        try
        {
            foreach (MethodInfo method in (typeof(T)).GetMethods())
            {
                if (IsXmlElement(method))
                {
                    // A way to get this method's value
                    // e.g. if T has method GetName, and GetName was assigned 'John' 
                    //i.e. object.GetName = 'John'Is there a way to get 'John' from this GetName method?
                }
            }

然后,我有一个对象,myObject.Name = 'John'...并将myObject传递给save方法,因此:Save(myObject);有什么方法可以在Save方法中获取值“ John”?

任何建议,将不胜感激。谢谢。

什么

如果要基于泛型类型遍历属性(假设您在示例中说“方法”时指的是属性),则可以使用TypeDescriptor该类:

public Guid Save<T>(T obj)
{
    Guid newId = Guid.NewGuid();
    try
    {
        foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(typeof(T)))
        {
            if (IsXmlElement(method))
            {
                object value = property.GetValue(obj);
                // ...
            }
        }

如果您总是推断类型(即总是推断T类型,obj而不是基本类型或接口),则根本不需要泛型:

public Guid Save(object obj)
{
    Guid newId = Guid.NewGuid();
    try
    {
        foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(obj))
        {
            if (IsXmlElement(method))
            {
                object value = property.GetValue(obj);
                // ...
            }
        }

您可能还想签出XmlSerializer课程。看来您是在手动从源对象创建XML。XmlSerializer可能已经用较少的工作便拥有了您所需的一切。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C#中获取通用类型的字段

来自分类Dev

如何扩展在C#中返回通用值的通用类?

来自分类Dev

如何在C#中获取当前方法的名称及其参数(名称和值)

来自分类Dev

如何在C#中通过反射获取属性值

来自分类Dev

如何在C#中获取小数的舍入值

来自分类Dev

如何在 C# 中获取类属性的属性值

来自分类Dev

如何在C#中为通用约束获取有效的类型对象?

来自分类Dev

如何在C#中为通用约束获取有效的类型对象?

来自分类Dev

C#通用方法值

来自分类Dev

如何在C#中编写通用方法及其默认等效方法

来自分类Dev

如何在C#中编写通用扩展方法以转换类型

来自分类Dev

如何在C#中通过反射提取通用方法约束?

来自分类Dev

如何在C#中以更通用的方式编写这些方法?

来自分类Dev

如何在C#中为MongoDB设计通用的BulkUpsertAsync方法?

来自分类Dev

如何在C#中以更通用的方式编写这些方法?

来自分类Dev

如何从C#中的通用List <T>获取元素?

来自分类Dev

如何在C#反射中解决通用方法的歧义

来自分类Dev

如何在C#中查找通用控件的标签

来自分类Dev

如何在C#中获得通用日期时间

来自分类Dev

如何在C#中查找通用控件的标签

来自分类Dev

如何在 C# 中组合通用函数的列表?

来自分类Dev

C#中的通用方法

来自分类Dev

如何在C#中获取多值xml文件中“ Ienumerable <String> Urls”中的每个值?

来自分类Dev

如何在C#中获取$ IntDir

来自分类Dev

如何记录在C#中引发通用异常的方法?

来自分类Dev

如何记录在C#中引发通用异常的方法?

来自分类Dev

如何在C#中的表达式中获取孙子的值?

来自分类Dev

如何在C#中获取数据表中的列的值?

来自分类Dev

如何在C#中的https调用中获取标头值

Related 相关文章

  1. 1

    如何在C#中获取通用类型的字段

  2. 2

    如何扩展在C#中返回通用值的通用类?

  3. 3

    如何在C#中获取当前方法的名称及其参数(名称和值)

  4. 4

    如何在C#中通过反射获取属性值

  5. 5

    如何在C#中获取小数的舍入值

  6. 6

    如何在 C# 中获取类属性的属性值

  7. 7

    如何在C#中为通用约束获取有效的类型对象?

  8. 8

    如何在C#中为通用约束获取有效的类型对象?

  9. 9

    C#通用方法值

  10. 10

    如何在C#中编写通用方法及其默认等效方法

  11. 11

    如何在C#中编写通用扩展方法以转换类型

  12. 12

    如何在C#中通过反射提取通用方法约束?

  13. 13

    如何在C#中以更通用的方式编写这些方法?

  14. 14

    如何在C#中为MongoDB设计通用的BulkUpsertAsync方法?

  15. 15

    如何在C#中以更通用的方式编写这些方法?

  16. 16

    如何从C#中的通用List <T>获取元素?

  17. 17

    如何在C#反射中解决通用方法的歧义

  18. 18

    如何在C#中查找通用控件的标签

  19. 19

    如何在C#中获得通用日期时间

  20. 20

    如何在C#中查找通用控件的标签

  21. 21

    如何在 C# 中组合通用函数的列表?

  22. 22

    C#中的通用方法

  23. 23

    如何在C#中获取多值xml文件中“ Ienumerable <String> Urls”中的每个值?

  24. 24

    如何在C#中获取$ IntDir

  25. 25

    如何记录在C#中引发通用异常的方法?

  26. 26

    如何记录在C#中引发通用异常的方法?

  27. 27

    如何在C#中的表达式中获取孙子的值?

  28. 28

    如何在C#中获取数据表中的列的值?

  29. 29

    如何在C#中的https调用中获取标头值

热门标签

归档