热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unity3D,用sqlite中的数据,实例化类

unity用,用sqlite中的数据,实例化类写了一个方法.用反射实例化一个类,并用sqlite的数据为其中属性赋值.使用需要一些前提1.你需要传入要实例化的类型.2.你需要将实例

unity用,用sqlite中的数据,实例化类

写了一个方法.用反射实例化一个类,并用sqlite的数据为其中属性赋值.

使用需要一些前提

1.你需要传入要实例化的类型.

2.你需要将实例化使用的数据读取到一个SqliteDataReader中.

这是github代码,实际运行下可能更好理解.https://github.com/943670930/DB2Entity

实际代码:

/// 

    /// Creates the object.

    /// 读取reader中数据,用数据实例化一个类

    /// 

    /// The object.

    /// Sq reader.

    /// The 1st type parameter.

    public T CreateObject(SqliteDataReader sqReader){

        //实例化一个空类

        T newObject = System.Activator.CreateInstance();

        //获取类型

        Type type = newObject.GetType ();

        //获取类型中所有public属性

        FieldInfo[] fields =  type.GetFields ();//BindingFlags.Public);

        //遍历所有属性

        foreach (FieldInfo field in fields) {

            string attrName = field.Name;//获取属性名

            int colIndex = sqReader.GetOrdinal (attrName);//获取这个属性在reader中的位置

            //从reader中取值

            object newValue = new object();

            if(field.FieldType == typeof(int)){

                newValue = sqReader.GetInt32 (colIndex);

            }else if(field.FieldType == typeof(string)){

                newValue = sqReader.GetString (colIndex);

            }

            //赋值给属性

            type.GetField (attrName).SetValue (newObject,newValue);

        }

        return newObject;

    }

有问题可以联系我微博@圆滚滚骑士


推荐阅读
  • Lua基本语法lua与C#的交互(相当简单详细的例子)
    lua脚本与C#的交互本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验——高分辨率用户请根据需求调整网页缩放比例)1LuaAndC#——L ... [详细]
  • 深入解析 Android 中的 ActivityGroup 实现
    本文详细探讨了如何在 Android 应用中使用 ActivityGroup 来实现类似微博客户端主界面的效果,并分析了 TabActivity 的局限性,推荐使用更为灵活的 ActivityGroup 方案。 ... [详细]
  • iOS 面试实战:15 道经典面试题及解析
    本文精选了15道iOS面试题,并提供了详细的解答思路。旨在帮助开发者更好地准备面试,避免因准备不足而导致的紧张和焦虑。 ... [详细]
  • Java 中SimpleDateFormat 错误用法及改正 ... [详细]
  • 本文档详细介绍了如何在Android应用中实现侧滑菜单(SlidingMenu)功能,包括设置侧边栏、全屏触摸模式以及初始化Fragment的具体步骤。 ... [详细]
  • 本文总结了几个常用的Android开发技巧,包括检测设备上是否安装特定应用、获取应用的版本名称、设置状态栏透明以及如何从一个应用跳转至另一个应用的方法。 ... [详细]
  • 本文介绍如何使用Java实现AC自动机(Aho-Corasick算法),以实现高效的多模式字符串匹配。文章涵盖了Trie树和KMP算法的基础知识,并提供了一个详细的代码示例,包括构建Trie树、设置失败指针以及执行搜索的过程。 ... [详细]
  • C#爬虫Fiddler插件开发自动生成代码
    哈喽^_^一般我们在编写网页爬虫的时候经常会使用到Fiddler这个工具来分析http包,而且通常并不是分析一个包就够了的,所以为了把更多的时间放在分析http包上,自动化生成 ... [详细]
  • 在现代移动应用开发中,尤其是iOS应用,处理来自服务器的JSON数据是一项基本技能。无论是使用Swift还是PHP,有效地解析和利用JSON数据对于提升用户体验至关重要。本文将探讨如何在Swift中优雅地处理JSON,以及PHP中处理JSON的一些技巧。 ... [详细]
  • Java 中静态和非静态嵌套类的区别 ... [详细]
  • Qt应用开发:创建基本窗口
    本文介绍如何使用Qt框架创建基础窗口的两种方法。第一种方法直接在main函数中创建并显示窗口;第二种方法通过定义一个继承自QWidget的类来实现更复杂的功能。 ... [详细]
  • 本文详细介绍了Java中的代理模式,包括静态代理、JDK动态代理和Cglib动态代理的实现方式。通过一个火车票销售系统的实例,对比分析了三种代理模式的特点及其应用场景。 ... [详细]
  • 重写init方法后,属性声明后为什么不为nil? ... [详细]
  • Activity跳转动画 无缝衔接
    Activity跳转动画 无缝衔接 ... [详细]
  • 深入解析Android Activity生命周期
    本文详细探讨了Android中Activity的生命周期,通过实例代码和详细的步骤说明,帮助开发者更好地理解和掌握Activity各个阶段的行为。 ... [详细]
author-avatar
紫夜丶月
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有