internal void Write(IBinaryAccessor accessor, ProjectWriteState state)
        {
            accessor.Write7BitEncodedInt(state.SetString(ProjectHelper.MakeRelativePath(_filePath, state.BasePath)));
            accessor.Write7BitEncodedInt(state.SetString(ProjectHelper.MakeRelativePath(_outputPath, state.BasePath)));
            accessor.Write((int)_flags);
            accessor.Write((int)_flags2);
            accessor.Write((int)_flags3);

            if (NameChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_name));
            }

            if (CultureChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_culture));
            }

            if (VersionChanged)
            {
                accessor.Write((ushort)_version.Major);
                accessor.Write((ushort)_version.Minor);
                accessor.Write((ushort)_version.Build);
                accessor.Write((ushort)_version.Revision);
            }

            if (TitleChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_title));
            }

            if (DescriptionChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_description));
            }

            if (CompanyChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_company));
            }

            if (ProductChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_product));
            }

            if (CopyrightChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_copyright));
            }

            if (TrademarkChanged)
            {
                accessor.Write7BitEncodedInt(state.SetString(_trademark));
            }

            if (_sign != null)
            {
                accessor.Write(true);
                _sign.Write(accessor, state);
            }
            else
            {
                accessor.Write(false);
            }

            WriteModules(accessor, state);
            WriteResources(accessor, state);
        }
 internal void Write(IBinaryAccessor accessor, ProjectWriteState state)
 {
     accessor.Write7BitEncodedInt(state.SetString(ProjectHelper.MakeRelativePath(_keyFilePath, state.BasePath)));
     accessor.Write7BitEncodedInt(state.SetString(_password));
     accessor.Write((bool)_delaySign);
 }
        internal void Read(IBinaryAccessor accessor, ProjectReadState state)
        {
            _filePath   = ProjectHelper.MakeAbsolutePath(state.GetString(accessor.Read7BitEncodedInt()), state.BasePath);
            _outputPath = ProjectHelper.MakeAbsolutePath(state.GetString(accessor.Read7BitEncodedInt()), state.BasePath);
            _flags      = accessor.ReadInt32();
            _flags2     = accessor.ReadInt32();
            _flags3     = accessor.ReadInt32();

            if (NameChanged)
            {
                _name = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (CultureChanged)
            {
                _culture = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (VersionChanged)
            {
                _version = new Version(accessor.ReadUInt16(), accessor.ReadUInt16(), accessor.ReadUInt16(), accessor.ReadUInt16());
            }

            if (TitleChanged)
            {
                _title = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (DescriptionChanged)
            {
                _description = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (CompanyChanged)
            {
                _company = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (ProductChanged)
            {
                _product = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (CopyrightChanged)
            {
                _copyright = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (TrademarkChanged)
            {
                _trademark = state.GetString(accessor.Read7BitEncodedInt());
            }

            if (accessor.ReadBoolean())
            {
                _sign = new ProjectAssemblySign(accessor, state);
            }

            ReadModules(accessor, state);
            ReadResources(accessor, state);
        }
 internal void Read(IBinaryAccessor accessor, ProjectReadState state)
 {
     _keyFilePath = ProjectHelper.MakeAbsolutePath(state.GetString(accessor.Read7BitEncodedInt()), state.BasePath);
     _password    = state.GetString(accessor.Read7BitEncodedInt());
     _delaySign   = accessor.ReadBoolean();
 }