关于Delphi中TRttiContext.FindType失效的问题
生活随笔
收集整理的這篇文章主要介紹了
关于Delphi中TRttiContext.FindType失效的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
自從Delphi2010后,Delphi中的Rtti功能得到了增強(qiáng)。我們終于可以不用先RegisterClass,再GetClass獲取類的信息了。而只是簡(jiǎn)單的通過TRttiContext.GetType或FindType來獲取類,進(jìn)而創(chuàng)建對(duì)象。雖然跟C#中的Rtti相比,還有些差距,不過這已經(jīng)算是很大的進(jìn)步了,希望Delphi越來越強(qiáng),書歸正傳。最近在研究Delphi中增強(qiáng)的Rtti,發(fā)現(xiàn)TRttiContext的FindType有時(shí)可以返回正確的類型,有時(shí)卻返回nil。很傷腦筋。后來查詢官方文檔才知道,并不是所有的類都會(huì)存儲(chǔ)到Rtti中的.只有那些在函數(shù)或類中被引用過的對(duì)象才會(huì)被自動(dòng)添加到Rtti中,如果你想強(qiáng)制將所有的類都加入到Rtti中,那么只需要一個(gè)簡(jiǎn)單的預(yù)編譯命令就可以了:
{$STRONGLINKTYPES ON}
總結(jié)
以上是生活随笔為你收集整理的关于Delphi中TRttiContext.FindType失效的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决IE正常模式与兼容性模式的办法
- 下一篇: after you've written