私はKenticoのasp.netプロジェクトに取り組んでいます。実行時の明示的な演算子キャスト
現在、モデルを作成しました。それをPartnerModelとしましょう。基本的に同じ情報を別の形式で保持する、TreeNode型のプライベート変数を含んでいます。
TreeNodeに明示的なPartnerModelのインスタンスをキャストできます。 これは実行時(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