namespace Wayne.Lib { /// <summary> /// Keeps track of versions in an application. /// </summary> public interface IVersionProvider { /// <summary> /// Main component version of the current process. /// </summary> VersionNumber ReleaseComponentVersion { get; } /// <summary> /// Gets the version for a sub component. /// </summary> /// <typeparam name="TVersionIdentifier"></typeparam> /// <param name="versionIdentifier"></param> /// <returns></returns> VersionNumber GetVersion<TVersionIdentifier>(TVersionIdentifier versionIdentifier); ///<summary> /// Sets the version for a sub component ///</summary> ///<param name="versionIdentifier"></param> ///<param name="versionNumber"></param> ///<typeparam name="TVersionIdentifier"></typeparam> void SetVersion<TVersionIdentifier>(TVersionIdentifier versionIdentifier, VersionNumber versionNumber); } }