开发者

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

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜