F#で継承したクラスをProtoBufの対象とするためのクラス定義

どう書くか最初困ったので誰かの参考になれば。
別で定義してるクラスなどを含んでるのでそのままではコンパイル通りませんが・・・

[<ProtoContract>]
[<ProtoInclude(50,typeof<AppCh>)>]
type BaseCmd ()=
    abstract Exec:unit->unit
    default this.Exec()=()
and [<ProtoContract>]
 AppCh=
    inherit BaseCmd
    [<ProtoMember(1)>]val mutable public _pKey:string
    [<ProtoMember(2)>]val mutable public _dNo:int
    [<ProtoMember(3)>]val mutable public _data:(ChDatum*uint16)[]
    [<ProtoMember(4)>]val mutable public _isDelay:bool
    new ()={inherit BaseCmd();_pKey="";_dNo=0;_data=[||];_isDelay=false;}
    new (pKey,dNo,data,isDelay)={inherit BaseCmd();
        _pKey=pKey;_dNo=dNo;_data=data;_isDelay=isDelay;}
    override this.Exec()=()