开发者

Get filename(s) where type is defined in asp.net website

开发者 https://www.devze.com 2023-03-09 07:43 出处:网络
If I define a class in a file ~/App_Code/Extensions/MyExtension/MyClass.cs Is it possible to retrieve the filename by type (or \'MyExtension\' part of it) without hard coding it?

If I define a class in a file

~/App_Code/Extensions/MyExtension/MyClass.cs

Is it possible to retrieve the filename by type (or 'MyExtension' part of it) without hard coding it?

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);开发者_C百科
}

Or inject it to the class in any way?

[ThisFile]
public class MyClass : MyBase
{
    private string _file = <thisfile>;
}


This sort of information is only really available in compiled languages (like C#) when you have debugging symbols included. So if you had a Debug build then you could get at this information by examining the current StackFrame.

var stackFrame = new StackFrame(true);
stackFrame.GetFileName()

Of course you probably don't want to have debug builds on your production code, so it may be worth-while looking at alternate ways to achieve whatever it is your trying to do here.


maybe you are looking for this?

Assembly.GetAssembly(typeof(YourTypeHere)).Location
0

精彩评论

暂无评论...
验证码 换一张
取 消