感谢您阅读我的文章。
我在公司网页上使用了UserControl
的asp.net。
UserControl
不能使用继承类,因为它已经继承了System.Web.UI.UserControl
类。
所以我想创建一个带有父页面名称的动态类。
以下是我的代码。
string userNo = string.Empty;
string virtualPath = Page.AppRelativeVirtualPath.ToString();
virtualPath = virtualPath.Substring(virtualPath.LastIndexOf("/") + 1);
//I want to use the generated class by referring to the variable name of "virtualPath" in the "here" text below.
//userNo = Uact.Framework.Common.Decryptor.Decrypt((("here!")Context.Handler).UserNo);
switch (virtualPath.ToUpper().Trim()){
case "PROJECTSIGNWRITE.ASPX" :
userNo = Uact.Framework.Common.Decryptor.
Decrypt(((ProjectSignWrite)Context.Handler).UserNo);
break;
case "PROJECTREPORTVIEW.ASPX" :
userNo = Uact.Framework.Common.Decryptor.
Decrypt(((ProjectReportView)Context.Handler).UserNo);
break;
case "PROJECTCOMPLETE.ASPX" :
userNo = Uact.Framework.Common.Decryptor.
Decrypt(((ProjectComplete)Context.Handler).UserNo);
break;
}
答案 0 :(得分:0)
不使用继承,而是使用接口。
使用属性UserNo
声明一个接口public interface IHasUserNo
{
string UserNo {get; set;}
}
然后让您的类(例如ProjectSignWrite
)实现此接口。
public class ProjectSignWrite : UserControl, IHasUserNo
{
.....
}
然后你可以简单地写:
userNo = Uact.Framework.Common.Decryptor.Decrypt(((IHasUserNo)Context.Handler).UserNo);