public class BaseClass { protected Guid _guid; public virtual Guid Guid { get { return _guid; } // set { } //Needs to be R/O } } public class Class2 : BaseClass { public override Guid Guid { get { return base.Guid; } set { _guid = value; } } }As it stands the mutator in the sub-class is rejected by the compiler because there is no overrideable in the parent class. Oh, and ideally I wouldn't want to override the accessor either....