我正在研究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