获取在asp.net网站中定义类型的文件名
本文关键字:定义 类型 文件名 网站 asp net 获取 | 更新日期: 2023-09-27 17:58:01
如果我在文件中定义一个类
~/App_Code/Extensions/MyExtension/MyClass.cs
是否可以通过类型(或其"MyExtension"部分)检索文件名,而无需对其进行硬编码?
var extTypes = getExtensions();
foreach(var extType in extTypes)
{
// something like
var files = extType.GetSourceFiles();
//or maybe asp.net keeps track of types in the dynamically created assembly
var files2 = SomeAspNetClass.WhereDidThisTypeComeFrom(extType);
}
或者以任何方式将其注入到类中?
[ThisFile]
public class MyClass : MyBase
{
private string _file = <thisfile>;
}
此类信息只有在包含调试符号的编译语言(如C#)中才真正可用。因此,如果您有一个Debug构建,那么您可以通过检查当前的StackFrame来获得这些信息。
var stackFrame = new StackFrame(true);
stackFrame.GetFileName()
当然,您可能不想在您的生产代码上进行调试构建,因此,考虑其他方法来实现您在这里想要做的事情可能是值得的。
也许你在找这个?
Assembly.GetAssembly(typeof(YourTypeHere)).Location