我正在努力设置一个自定义属性,该属性假定指向ASP.NET webcontrol上的自定义类的实例。
网页控件示例:
public class CustomControl : System.Web.UI.WebControls.Panel
{
public IFactory Factory { get; set; }
}
代码背后:
public partial class Main : System.Web.UI.Page
{
public IFactory GetFactory {
get { return new CustomFactory(); }
}
}
public class CustomFactory : IFactory {}
自定义工厂在后面的代码上初始化。在我的标记中(不在后面的代码中),我需要将CustomControl上的Factory属性设置为我后面的代码中的实例。 我试过的内联代码的任何变体都不起作用:
<asp:CustomControl ID="MyCustomControl" Factory="<%GetFactory%>" runat="server" />
<asp:CustomControl ID="MyCustomControl" Factory="<%=GetFactory%>" runat="server" />
任何人都可以协助如何做到这一点吗?
答案 0 :(得分:1)
您无法在控制标记标记上分配它,标记标记呈现为html并且没有逻辑可以这样做,html不会解释GetFactory
的结果。
您可以做的是在标记上设置if,而不是控制标记属性,但在代码括号内设置如下:
<%MyCustomControl.Factory = this.GetFactory;%>