CachePolicy
.AddCachePolicy() appends a cache policy. Policies are evaluated in the order they are appended.
serviceCollection
.AddCachePolicy(CachePolicies.Default)
.AddCachePolicy(CachePolicies.ToNotCache);
EntryPolicy
.AddEntryPolicy() appends a entry policy. Policies are evaluated in the order they are appended.
serviceCollection
.AddEntryPolicy(EntryPolicies.DontDisposeType<Type>())
.AddEntryPolicy(EntryPolicies.DisposeAndNull);
Full Example
Full example
using System;
using Avalanche.Service;
using Microsoft.Extensions.DependencyInjection;
class di_cache
{
public static void Run()
{
{
// Service collection
IServiceCollection serviceCollection = new ServiceCollection();
// Avalanche.Service
// <01>
serviceCollection
.AddCachePolicy(CachePolicies.Default)
.AddCachePolicy(CachePolicies.ToNotCache);
// </01>
serviceCollection
.AddEntryPolicy(EntryPolicies.Default)
.AddAvalancheService()
.AddHandlers(ServiceHandlers.Instance);
// Services
using var service = serviceCollection.BuildAvalancheServiceProvider();
//
IRequestFor<Type> typeRequest = new TypeRequest("System.String");
//
Type type = service.GetRequired<IRequestFor<Type>, Type>(typeRequest);
}
{
// Service collection
IServiceCollection serviceCollection = new ServiceCollection();
// Avalanche.Service
// <02>
serviceCollection
.AddEntryPolicy(EntryPolicies.DontDisposeType<Type>())
.AddEntryPolicy(EntryPolicies.DisposeAndNull);
// </02>
serviceCollection
.AddEntryPolicy(EntryPolicies.Default)
.AddAvalancheService()
.AddHandlers(ServiceHandlers.Instance);
// Services
using var service = serviceCollection.BuildAvalancheServiceProvider();
//
IRequestFor<Type> typeRequest = new TypeRequest("System.String");
//
Type type = service.GetRequired<IRequestFor<Type>, Type>(typeRequest);
}
}
}