C# 无法从继承的类重写虚拟属性
我的自定义Sitecore控件继承自Sitecore.Web.UI.HtmlControls.control。此类按如下方式定义属性值:C# 无法从继承的类重写虚拟属性,c#,.net,inheritance,C#,.net,Inheritance,我的自定义Sitecore控件继承自Sitecore.Web.UI.HtmlControls.control。此类按如下方式定义属性值: public virtual string Value { get { return this.GetViewStateString("Value"); } set { if (!(value != this.Value)) return; this.SetView
public virtual string Value {
get {
return this.GetViewStateString("Value");
}
set {
if (!(value != this.Value))
return;
this.SetViewStateString("Value", value);
}
}
public class ClientProfileSelector : Sitecore.Web.UI.HtmlControls.Control, IContentField {
...
public override string Value {
get {
return this.MyOwnValue;
}
set {
if (!(value != this.MyOwnValue))
return;
this.MyOwnValue = value;
}
}
...
}
我的自定义类定义如下:
public virtual string Value {
get {
return this.GetViewStateString("Value");
}
set {
if (!(value != this.Value))
return;
this.SetViewStateString("Value", value);
}
}
public class ClientProfileSelector : Sitecore.Web.UI.HtmlControls.Control, IContentField {
...
public override string Value {
get {
return this.MyOwnValue;
}
set {
if (!(value != this.MyOwnValue))
return;
this.MyOwnValue = value;
}
}
...
}
整个类的代码都可用
我的类由Sitecore自动实例化,但我知道它正在运行,因为我可以进入其中定义的其他方法。例如,我的自定义类中的方法GetValue()调用字段值,如下所示:
public string GetValue() {
return string.IsNullOrEmpty(CalculatedValue) ? CalculatedValue : Value;
}
但是,当我在定义和基类的定义中都添加了断点之后跨过它时,执行会在基类中停止
我做错了什么?你试过调试这个吗?您确定使用了基类的getter/setter吗?如何实例化类?请注意,这是一个属性,而不是字段。没有虚拟字段。是的,当然是我调试的。我的类由Sitecore实例化,我知道它正在运行,因为我可以进入它的其他方法。例如,我的自定义类中的方法GetValue()调用字段值,但是当我进入它时,我从它的基类中获取定义。您可能也可以包括您的类定义吗?我知道这种样式在基类中,但是如果(!(Value!=this.MyOwnValue))应该是
if(Value==this.MyOwnValue)
以提高可读性