使用WPF NET6 Caliburn.Micro MVVM框架
我現在有寫一個Api
目前是打算做 用內網call api 可以去強制撥放緊急音效
問題 現在api call Emergency後 會撥放
但是會在創建一次MainViewModel 所以會造成 MainViewModel內原本在撥放的音效
會一起撥放 而不是蓋掉原本的MainViewModel內的音效
目前有點類似 call api 變成兩台撥放器 兩台各自撥放 如果多call 就變更多台
需求是想要 call api 由原本那台撥放器不管撥放甚麼都變成撥放緊急音效
想問一下是我DI的設定有問題嗎 還是有其他的方式可以處理
bootstrap部分
public partial class Bootstrapper : BootstrapperBase
{
private readonly SimpleContainer _container = new SimpleContainer();
public Bootstrapper()
{
Initialize();
}
protected override void Configure()
{
_container.Singleton<MainViewModel>();
_container.Singleton<ApiController>();
_container.Singleton<HomeViewModel>();
}
protected override void OnStartup(object sender, StartupEventArgs e)
{
DisplayRootViewForAsync<LoginViewModel>();
}
}
Api部分
[ApiController]
public class ApiController : ControllerBase
{
[Route("api/Emergency")]
[HttpGet]
public string Emergency()
{
MainViewModel MainViewModel = IoC.Get<MainViewModel>();
MainViewModel.Play(true);
return "success";
}
}
MainViewModel部分
public MainViewModel()
{
//init
}
public async Task Play(bool IsEmergency = false)
{
Wave.play()
}