protected override void DisposeOverride()
        {
            if (mIsDisposed)
            {
                return;
            }

            mFieldBuilders.Clear();
            mFieldNames.Clear();
            mFields.Clear();

            mBuffer?.Dispose();
            mContext.RemoveBuilder(mTypeName);

            mTypeBuilder = null;
            mBuffer      = null;
            mType        = null;
            mData        = null;

            mIsDisposed = true;
        }