码迷,mamicode.com
首页 > 其他好文 > 详细

tolua反射应用

时间:2020-03-31 20:53:40      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:public   flag   print   修改   log   新功能   tps   功能   art   

tolua反射应用

有时候要修改紧急bug或者增加一个新功能,但又不能更新整包。C#代码没有导出wrap,可以临时用一下tolua的反射。

C#代码:

namespace MyNameSpace
{
    public class ToluaReflection
    {
        public string StringField = "ToluaReflection";
    }
}

lua代码:

function toLuaReflectionTest()
    require ‘tolua.reflection‘
    tolua.loadassembly(‘Assembly-CSharp‘)
    local reflectionTest = typeof("MyNameSpace.ToluaReflection")
    local instance = tolua.createinstance(reflectionTest)
    local BindingFlags = System.Reflection.BindingFlags
    local flag = System.Reflection.BindingFlags.GetMask( BindingFlags.Public , BindingFlags.NonPublic , BindingFlags.Static , BindingFlags.Instance)
    local pubfield = tolua.getfield(reflectionTest, "StringField", flag)
    local pubfieldValue = pubfield:Get(instance)
    print(pubfieldValue)
    pubfield:Set(instance, "changedpubfield")
    pubfieldValue = pubfield:Get(instance)
    print(pubfieldValue)
end

运行结果:

技术图片

参考博文:https://blog.csdn.net/zoujiandong_8888/article/details/83585213

tolua反射应用

标签:public   flag   print   修改   log   新功能   tps   功能   art   

原文地址:https://www.cnblogs.com/woodjay/p/12608017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!