簡體   English   中英

從運行時復制的新類中獲取類型將返回null

[英]Getting type from new classes copied at runtime returns null

按下按鈕后,我的Web應用程序將幾個類復制到項目中,然后檢查新文件是否包含帶有Type.GetType(“ my.namespace.myclass”,false,true)的名為my.namespace.myclass的類。 即使我可以看到具有正確名稱空間的類,也返回null,並且如果我在代碼中寫入my.namespace.myclass(在VS中刷新文件后),則該類可用。 如果我再次單擊相同的按鈕,現在可以找到類型; 我猜該類以前沒有編譯過,但是現在。

是否有某種方法可以在嘗試獲取類型之前強制編譯文件? 我嘗試以編程方式重新啟動asp.net應用程序,但類型仍然為null。

任何幫助表示贊賞

我不確定我是否正確理解您的問題。 據我了解,您想加載一個文本文件(.cs文件基本上是文本文件),並對其中的代碼進行反思。

如果我對您的理解正確,那么您需要進行一些運行時編譯。 這並不那么復雜,但是仍然需要完成。 您可以此使用說明。

當您將文件拖放到App_Code中時,它們會被編譯成單獨的程序集,並會導致您的Web應用程序重新編譯。 問題是,如果將它們復制到App_Code中,當執行Type.GetType(...)時將看不到,因為您當前的App_Code版本(當前正在運行的編譯版本)不包含它們。 我建議嘗試以其他方式提供它們。 App_Code是ASP.NET中的一種特殊機制,在實際應用中我不會依賴於此。 我希望將這些類編譯並放入另一個文件夾中,在其中可以將它們加載到AppDomain中並反映我需要的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM