c# - How can I get location of an .aspx file using Reflection -


मैं अपनी विधानसभा खोज रहा हूं ( System.Reflection का उपयोग करके) विशिष्ट श्रेणी ( System.Web.UI.Page )।

इन सभी विरासत वर्गों में मेरे वेब पेज हैं।

मैं .aspx भी फ़ाइल पथ कैसे पढ़ सकता हूँ (वेब ​​रूट के सापेक्ष)?

मुझे पता है कि मैं इस पथ को .pdb फ़ाइल से पढ़ सकता हूं, हालांकि यह फ़ाइल लाइव सर्वर में मौजूद नहीं है।

संपादित करें से बचने के लिए भ्रम, यहाँ मेरे कोड का एक नमूना है DoSomeProcess सटीक प्रक्रिया नहीं है वास्तव में यह कक्षा खुद को प्राप्त करता है और इसका विश्लेषण भी करता है हालांकि यह कोड नमूने के लिए महत्वपूर्ण नहीं है।

  सिस्टम का उपयोग कर; System.IO का उपयोग कर; सिस्टम का उपयोग कर। नामस्थान ... {सार्वजनिक वर्ग FixPaths: System.Web.UI.Page {शून्य SearhcAssembly () {विधानसभा पुस्तकालय = विधानसभा। GetAxecutingAssembly (); स्ट्रिंग फ़ाइलनाम = पथ.गेटफ़ाइलनाम (पुस्तकालय। स्थान); विदेशी भाषा (टाइप करें लाइब्रेरी में टाइप करें। गेटटाइप ()) {if (FileName == type.Module.Name) {if (type.BaseType! = Null & amp; amp; amp; (type.BaseType.FullName == "System.Web.UI .पीज ")) {string nameSpace = type.Namespace; स्ट्रिंग क्लासनाम = टाइप करेंनाम। // - इसे बदलना होगा - स्ट्रिंग PageUrl = "/" + type.Namespace.ToLower ()। बदलें ("।", "/") + "/" + Type.Name + ".aspx"; // ------------------------------------- doSomeProcess (नामस्पेस, कक्षा नाम, PageUrl); बॉब, दुर्भाग्य से यह एक उचित समाधान नहीं है। हालांकि, जहां तक ​​हम टिप्पणियों पर चर्चा की है, यह हमारे पास सबसे नज़दीकी हो सकता है।  
  1. प्रतिबिंब से, अपने विधानसभा में सभी प्रकार प्राप्त करें जो कि पृष्ठ < / Strong>।
  2. रिकर्सिव I / O खोज का उपयोग करके, सभी * .aspx फ़ाइलों को अपने रूट फ़ोल्डर में देखें और उन्हें एक सूची में रखें (ताकि आप उनका पूरा पथ पुनः प्राप्त कर सकें और इसी तरह से
  3. आपके द्वारा प्राप्त की गई फ़ाइलों के साथ मिलते-जुलते प्रकारों की तुलना करें। इस प्रकार आप पेज (कक्षाएं) की रिपोर्ट कर सकते हैं जो सही फ़ाइल और एएसपीएक्स पर नहीं हैं जो सही जगह पर नहीं हैं।

    मुझे इस प्रकार की स्रोत और इसके स्रोत फ़ाइल के बीच संबंध नहीं मिल सका। इसके अलावा, हम पन्नों (विधानसभा में घोषित) और एएसपीएक्स फाइलों के बारे में बात कर रहे हैं, जो बिल्कुल भी संबंधित नहीं हैं।

    अगर किसी के पास एक बेहतर समाधान है, तो मैं इसके साथ-साथ इसे भी देखना चाहता हूं।

    सादर

Comments