所以我尝试了GetType(),但由于某种原因,它确实包含了命名空间…… C#没有指定其名称的类的属性吗? 例如: public class Parent : System.Web.UI.UserControl { public someFunction(){ Child child = new Child()
C#没有指定其名称的类的属性吗?
例如:
public class Parent : System.Web.UI.UserControl { public someFunction(){ Child child = new Child(); Console.WriteLine(child.ThePropertyThatContainsTheName); } } public class Child : Parent { }
我曾尝试使用名称为硬编码的字符串属性创建Child,但前提是我们可以找到更好的解决方法…也许是反射或表达式……
在此先感谢=)
编辑:顺便说一下我正在处理用户控件…
如果您使用的是ASP.NET Web应用程序项目,则通常会使用代码隐藏模型.ASP.NET将从您的aspx / ascx文件动态生成和编译一个类,该文件使用您在代码隐藏文件中定义的类作为基类.
this.GetType().Name和this.GetType().FullName将返回ASP.NET生成的自动生成的类的名称.这个自动生成的类将子类化您在代码隐藏文件中定义的UserControl / WebPage类(在ascx文件的<%@ Control ...>标记中的Inherits关键字/<%@ Page ... >你的aspx文件的标签).
如果您想要代码隐藏类的名称,请使用:
this.GetType().BaseType.Name或this.GetType().BaseType.FullName