Skip to content

Instantly share code, notes, and snippets.

@ppatidar-conga
Last active August 26, 2022 10:37
Show Gist options
  • Save ppatidar-conga/18f5469820176e66c5c579cbec265613 to your computer and use it in GitHub Desktop.
Save ppatidar-conga/18f5469820176e66c5c579cbec265613 to your computer and use it in GitHub Desktop.
Interview | DI lifetime Question -1
public class Superior : ISuperior
{
public string instanceId { get; set; }
public Superior()
{
instanceId = GenerateRandomNumberBetweenNotAllocatedBefore(201 to 300);
}
public string SaySuperiorInstanceId()
{
return instanceId;
}
}
//----------------------
public class Dependent : IDependent
{
public string instanceId { get; set; }
public ISuperior Superior { get; }
public Dependent(ISuperior superior)
{
Superior = superior;
instanceId = GenerateRandomNumberBetweenNotAllocatedBefore(101 to 200);
}
public string SayMyInstanceId()
{
return instanceId;
}
public string SayMySuperiorInstanceId()
{
return Superior.SaySuperiorInstanceId();
}
}
//------
Case 2:
---------
public static void Configure(IServiceCollection services)
{
services.AddTransient<ISuperior, Superior>();
services.AddScoped<IDependent, Dependent>();
}
//----------------------
public void mainControllerCall()
{
var dep1 = services.GetRequiredService<IDependent>();
var sup1 = services.GetRequiredService<ISuperior>();
var dep2 = services.GetRequiredService<IDependent>();
var sup2 = services.GetRequiredService<ISuperior>();
print($"dep1- {dep1.SayMyInstanceId()}");
print($"dep1.sup1-{dep1.Superior.SayMySuperiorInstanceId()}");
print($"sup1- {sup1.SaySuperiorInstanceId()}");
print($"dep2- {dep2.SayMyInstanceId()}");
print($"dep2.sup2-{dep2.Superior.SayMySuperiorInstanceId()}");
print($"sup2- {sup2.SaySuperiorInstanceId()}");
}
-------------------------------
##########################################
Case 3:
---------
public static void Configure(IServiceCollection services)
{
services.AddTransient<ISuperior, Superior>();
services.AddSingleton<IDependent, Dependent>();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment