@@ -142,15 +142,14 @@ public static IObservable<Unit> Shutdown()
142142 /// </summary>
143143 /// <typeparam name="T">The serializer.</typeparam>
144144 /// <param name="applicationName">The application name for cache directories. If null, uses the current ApplicationName.</param>
145+ /// <param name="fileLocationOption">The file location option.</param>
145146 /// <exception cref="InvalidOperationException">Failed to create AkavacheBuilder instance.</exception>
146147#if NET6_0_OR_GREATER
147-
148148 [ RequiresUnreferencedCode ( "Serializers require types to be preserved for serialization." ) ]
149- public static void Initialize < T > ( string ? applicationName = null )
150- #else
151- public static void Initialize < T > ( string ? applicationName = null )
152149#endif
153- where T : ISerializer , new ( ) => SetBuilder ( CreateBuilder ( )
150+ public static void Initialize < T > ( string ? applicationName = null , FileLocationOption fileLocationOption = FileLocationOption . Default )
151+
152+ where T : ISerializer , new ( ) => SetBuilder ( CreateBuilder ( fileLocationOption )
154153 . WithApplicationName ( applicationName )
155154 . WithSerializer < T > ( )
156155 . WithInMemoryDefaults ( )
@@ -163,15 +162,12 @@ public static void Initialize<T>(string? applicationName = null)
163162 /// <typeparam name="T">The serializer.</typeparam>
164163 /// <param name="configureSerializer">The Serializer configuration.</param>
165164 /// <param name="applicationName">The application name for cache directories. If null, uses the current ApplicationName.</param>
166- /// <exception cref="InvalidOperationException">Failed to create AkavacheBuilder instance .</exception >
165+ /// <param name="fileLocationOption">The file location option .</param >
167166#if NET6_0_OR_GREATER
168-
169167 [ RequiresUnreferencedCode ( "Serializers require types to be preserved for serialization." ) ]
170- public static void Initialize < T > ( Func < T > configureSerializer , string ? applicationName = null )
171- #else
172- public static void Initialize < T > ( Func < T > configureSerializer , string ? applicationName = null )
173168#endif
174- where T : ISerializer , new ( ) => SetBuilder ( CreateBuilder ( )
169+ public static void Initialize < T > ( Func < T > configureSerializer , string ? applicationName = null , FileLocationOption fileLocationOption = FileLocationOption . Default )
170+ where T : ISerializer , new ( ) => SetBuilder ( CreateBuilder ( fileLocationOption )
175171 . WithApplicationName ( applicationName )
176172 . WithSerializer ( configureSerializer )
177173 . WithInMemoryDefaults ( )
@@ -183,22 +179,19 @@ public static void Initialize<T>(Func<T> configureSerializer, string? applicatio
183179 /// <typeparam name="T">The serializer.</typeparam>
184180 /// <param name="configure">An action to configure the Akavache builder.</param>
185181 /// <param name="applicationName">Name of the application.</param>
186- /// <exception cref="ArgumentNullException">configure .</exception >
182+ /// <param name="fileLocationOption">The file location option .</param >
187183#if NET6_0_OR_GREATER
188-
189184 [ RequiresUnreferencedCode ( "Serializers require types to be preserved for serialization." ) ]
190- public static void Initialize < T > ( Action < IAkavacheBuilder > configure , string ? applicationName = null )
191- #else
192- public static void Initialize < T > ( Action < IAkavacheBuilder > configure , string ? applicationName = null )
193185#endif
186+ public static void Initialize < T > ( Action < IAkavacheBuilder > configure , string ? applicationName = null , FileLocationOption fileLocationOption = FileLocationOption . Default )
194187 where T : ISerializer , new ( )
195188 {
196189 if ( configure == null )
197190 {
198191 throw new ArgumentNullException ( nameof ( configure ) ) ;
199192 }
200193
201- var builder = CreateBuilder ( )
194+ var builder = CreateBuilder ( fileLocationOption )
202195 . WithApplicationName ( applicationName )
203196 . WithSerializer < T > ( ) ;
204197
@@ -214,22 +207,19 @@ public static void Initialize<T>(Action<IAkavacheBuilder> configure, string? app
214207 /// <param name="configureSerializer">The Serializer configuration.</param>
215208 /// <param name="configure">An action to configure the Akavache builder.</param>
216209 /// <param name="applicationName">Name of the application.</param>
217- /// <exception cref="ArgumentNullException">configure .</exception >
210+ /// <param name="fileLocationOption">The file location option .</param >
218211#if NET6_0_OR_GREATER
219-
220212 [ RequiresUnreferencedCode ( "Serializers require types to be preserved for serialization." ) ]
221- public static void Initialize < T > ( Func < T > configureSerializer , Action < IAkavacheBuilder > configure , string ? applicationName = null )
222- #else
223- public static void Initialize < T > ( Func < T > configureSerializer , Action < IAkavacheBuilder > configure , string ? applicationName = null )
224213#endif
214+ public static void Initialize < T > ( Func < T > configureSerializer , Action < IAkavacheBuilder > configure , string ? applicationName = null , FileLocationOption fileLocationOption = FileLocationOption . Default )
225215 where T : ISerializer , new ( )
226216 {
227217 if ( configure == null )
228218 {
229219 throw new ArgumentNullException ( nameof ( configure ) ) ;
230220 }
231221
232- var builder = CreateBuilder ( )
222+ var builder = CreateBuilder ( fileLocationOption )
233223 . WithApplicationName ( applicationName )
234224 . WithSerializer ( configureSerializer ) ;
235225
@@ -241,8 +231,11 @@ public static void Initialize<T>(Func<T> configureSerializer, Action<IAkavacheBu
241231 /// <summary>
242232 /// Creates a new Akavache builder for configuration.
243233 /// </summary>
244- /// <returns>A new Akavache builder instance.</returns>
245- public static IAkavacheBuilder CreateBuilder ( ) => new AkavacheBuilder ( ) ;
234+ /// <param name="fileLocationOption">The file location option.</param>
235+ /// <returns>
236+ /// A new Akavache builder instance.
237+ /// </returns>
238+ public static IAkavacheBuilder CreateBuilder ( FileLocationOption fileLocationOption = FileLocationOption . Default ) => new AkavacheBuilder ( fileLocationOption ) ;
246239
247240 /// <summary>
248241 /// Internal method to set the builder instance. Used by the builder pattern.
0 commit comments