Official_Lusi

service registration

Jul 18th, 2025
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.96 KB | Software | 0 0
  1. public interface ICacheService
  2. {
  3.     public void SetSomething(object something);
  4.     public object GetSomething();
  5. }
  6.  
  7. public class CacheService : ICacheService
  8. {
  9.     private object _something;
  10.    
  11.     public void SetSomething(object something) => _something = something;
  12.    
  13.     public object GetSomething() => _something;
  14. }
  15.  
  16. public class Service()
  17. {
  18.     private ICacheService _serviceCache;
  19.    
  20.     public Service(ICacheService cache)
  21.     {
  22.         _serviceCache = cache;
  23.     }
  24.    
  25.     public void DoSomething(object something)
  26.     {
  27.         //stuff
  28.        
  29.         _cacheService.SetSomething(something);
  30.        
  31.         //other stuff
  32.     }
  33.    
  34.     public object ReturnSomething()
  35.     {
  36.         return _cacheService.GetSomething();
  37.     }
  38. }
  39.    
  40. public class Program{
  41.  
  42.     private ICacheService _cacheService;
  43.     private Service _service;
  44.  
  45.     public static int Main(string[] args)
  46.     {
  47.         // inizializzo un service provider ecc...
  48.         IServiceProvider provider = /*serviceProvider*/ ;
  49.        
  50.         _cacheService = new CacheService();
  51.        
  52.         RegisterServices(provider);
  53.        
  54.         DoingSomethingWithServices(provider);
  55.        
  56.         return 0;
  57.     }
  58.    
  59.     private void RegisterServices(IServiceProvider provider)
  60.     {
  61.         provider.Services.AddSingleton<ICacheService>(_cacheService);
  62.         provider.Services.AddTransient<Service>();
  63.     }
  64.    
  65.     private void DoingSomethingWithServices(IServiceProvider provider)
  66.     {
  67.         Service serviceInstance1 = provider.GetService<Service>();
  68.         Service serviceInstance2 = provider.GetService<Service>();
  69.         Service serviceInstance3 = provider.GetService<Service>();
  70.        
  71.         object something = 1;
  72.         serviceInstance1.DoSomething(something);
  73.        
  74.         object something = 2;
  75.         serviceInstance2.DoSomething(something);
  76.        
  77.         object something = 3;
  78.         serviceInstance1.DoSomething(something);
  79.        
  80.         List<object> somethings = new List<object>();
  81.        
  82.         somethings.Add(serviceInstance1.ReturnSomething())
  83.         somethings.Add(serviceInstance2.ReturnSomething())
  84.         somethings.Add(serviceInstance3.ReturnSomething())
  85.        
  86.         // what's inside somethings? 3,3,3 ? or 1,2,3?
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment