コンテンツにスキップ

DependencyInjection

NuGet Gallery | Microsoft.Extensions.DependencyInjection 9.0.5

1
dotnet add package Microsoft.Extensions.DependencyInjection
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using Microsoft.Extensions.DependencyInjection;

interface IMessageService
{
    string CreateMessage();
}

class MessageService : IMessageService
{
    public string CreateMessage()
    {
        return "Hello";
    }
}

interface IMessageController
{
    void SayMessage();
}

class MessageController : IMessageController
{
    private readonly IMessageService MessageService;
    public MessageController(IMessageService messageService)
    {
        MessageService = messageService;
    }

    public void SayMessage()
    {
        Console.WriteLine(MessageService.CreateMessage());
    }
}

class Program
{
    static void Main(string[] args)
    {
        var serviceCollection = new ServiceCollection();
        serviceCollection.AddSingleton<IMessageService, MessageService>();
        serviceCollection.AddSingleton<IMessageController, MessageController>();

        var serviceProvider = serviceCollection.BuildServiceProvider();
        var messageController = serviceProvider.GetService<IMessageController>()!;

        messageController.SayMessage();
    }
}