Skip to content

Instantly share code, notes, and snippets.

View alimozdemir's full-sized avatar

Alim ÖZDEMİR alimozdemir

View GitHub Profile
public static class ScrutorExtensions
{
public static IImplementationTypeSelector InjectableAttributes(this IImplementationTypeSelector selector)
{
var lifeTimes = Enum.GetValues(typeof(ServiceLifetime)).Cast<ServiceLifetime>();
foreach (var item in lifeTimes)
selector = selector.InjectableAttribute(item);
return selector;
public class InjectableAttribute : Attribute
{
public ServiceLifetime Lifetime { get; }
public InjectableAttribute(ServiceLifetime lifeTime = ServiceLifetime.Transient)
{
Lifetime = lifeTime;
}
}
[Injectable(ServiceLifetime.Transient)]
public void ConfigureServices(IServiceCollection services)
{
...
services.Scan(i =>
i.FromCallingAssembly()
.AddClasses(c => c.WithAttribute<TransientAttribute>())
.AsImplementedInterfaces()
.WithTransientLifetime()
public class TransientAttribute : Attribute
{
public TransientAttribute()
{
}
}
public class ScopedAttribute : Attribute
{
public ScopedAttribute()
public void ConfigureServices(IServiceCollection services)
{
...
services.Scan(i =>
i.FromCallingAssembly()
.AddClasses(c => c.AssignableTo<ITransient>())
.AsImplementedInterfaces()
.WithTransientLifetime()
public interface ITransient { }
public interface IScoped { }
public interface ISingleton { }
public interface ITransientService
{
string GetValue();
}
[ApiController]
[Route("[controller]")]
public class ExampleServiceController : ControllerBase
{
private readonly ITestTransientService _transientService;
private readonly ITestScopedService _scopedService;
private readonly ITestSingletonService _singletonService;
public ExampleServiceController(ITestTransientService transientService, ITestScopedService scopedService, ITestSingletonService singletonService)
{
public void ConfigureServices(IServiceCollection services)
{
...
services.AddTransient<ITestTransientService, TestTransientService>();
services.AddScoped<ITestScopedService, TestScopedService>();
services.AddSingleton<ITestSingletonService, TestSingletonService>();
...
}
@alimozdemir
alimozdemir / example.ts
Created January 23, 2020 20:34
Example usage of base component
export class HomePageComponent extends BasePageComponent implements OnInit {
{
...
goAbout() {
this.changePage('about');
return false;
}
...
}
@alimozdemir
alimozdemir / example.ts
Created January 23, 2020 20:34
Example usage of base component
export class HomePageComponent extends BasePageComponent implements OnInit {
{
...
goAbout() {
this.changePage('about');
return false;
}
...
}