1

我正在.NET Core 的控制台应用程序中开发一个小游戏,其中应用程序的开始是接口StartPlay方法。IGamePlay我有一个GamePlay实现这个接口的类。

interface IGamePlay
{
    void StartPlay(List<Person> ListOfPlayers, int deckSize);
    void PlayFromShuffledCards(List<Person> ListOfPlayers, Stack<Card> shuffledCards);

    void PlayFromDiscardCards(List<Person> ListOfPlayers);
}

在我的主要方法中,我有以下代码:

class Program
{
    static void Main(string[] args)
    {
        var serviceProvider = new ServiceCollection()               
               .AddSingleton<IGamePlay,GamePlay>()                
               .AddSingleton<GamePlay>()
               .BuildServiceProvider();

        // Populate listof players
        var gamePlay = serviceProvider.GetRequiredService<GamePlay>();

        gamePlay.StartPlay(listOfPlayers,deckSize);
    }
}

在我的 main 方法中,我直接调用了 main 方法最后一行中StartPlaygamePlay类。

这是否违反了 DI 原则?如果是,从 main 实例化它的最佳方法是什么?

4

0 回答 0