我正在研究Kentico中的asp.net项目。运行时显式运算符
目前我创建了一个模型,我们称它为PartnerModel。它包含一个TreeNode类型的私有变量,它基本上以不同的形式保存相同的信息。
我希望能够将一个PartnerModel的实例显式转换为TreeNode。 这应该在运行时发生(在WebForms用户控件中)。
编辑:我不是在寻找“更好”的方式来实现我想要的东西。这不是一个明确的用例,而是一个通用的目的。下面的代码就是我试图做的。我只想知道,如果可以在运行时显式模型化我的模型,并且如果可以的话,我该怎么做。
这可能吗?我只是得到一个InvalidCast异常。
PartnerModel.cs
public class PartnerModel
{
#region Public Properties
public TreeNode Node { get { return node; } }
...
public static explicit operator TreeNode(PartnerModel model)
{
return model.node;
}
}
PartnerOverview.ascx
...
<cms:BasicRepeater runat="server" ID="RepeaterPartner">
<ItemTemplate>
<a href="<%# ((CMS.DocumentEngine.TreeNode)Container.DataItem).RelativeURL %>">
...
而不是“铸造它”,你可以解析它。 – null
确实我可以,但那不是我想要做的。 – eTomate
你确定'Container.DataItem'确实是'PartnerModel'吗?你有没有尝试先把它转换成'PartnerModel'? – rocky