C#类是否知道实例化了哪个文件?

Pau*_*ale 1 c#

是否有可能告诉C#中实例化一个类的文件?

例如,如果我有Page1.cs和Page2.cs,myclass.cs中的构造函数可以知道哪个页面从中创建了一个对象?

Iri*_*ium 5

您可以通过" 来电者信息 "属性执行此操作.基本上,您在类的构造函数上创建一些额外的可选参数,为它们应用一些特殊属性,编译器将自动为您填写详细信息.例如:

using System.Runtime.CompilerServices;

public MyClass
{
    public MyClass(  
    [CallerMemberName] string memberName = "",  
    [CallerFilePath] string sourceFilePath = "",  
    [CallerLineNumber] int sourceLineNumber = 0)  
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

你只需要将其称为:

var instance = new MyClass();
Run Code Online (Sandbox Code Playgroud)

并且编译器将自动填写调用者的成员名称,文件路径和行号.