tolua反射应用
Posted woodjay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tolua反射应用相关的知识,希望对你有一定的参考价值。
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反射应用的主要内容,如果未能解决你的问题,请参考以下文章