我正在.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 方法最后一行中StartPlay的gamePlay类。
这是否违反了 DI 原则?如果是,从 main 实例化它的最佳方法是什么?