有一堂课
public class LongRunningStatus: IRunningStatus
{
#region Implementation of IRunningStatus
public LongRunningStatus()
{
Status = "Constructor";
}
/// <inheritdoc />
public string Status { get; set; }
#endregion
}
在ConfigureServices
我这样添加的方法中:
services.AddTransient<IRunningStatus, LongRunningStatus>();
结果,在控制器方法中
public ActionResult<string> Status([FromServices] IRunningStatus rs)
我每次都得到一个带有“”的实例Constructor
。
如果我在 Start 类的构造函数中,创建一个实例IRunningStatus
,然后分配它
services.AddTransient<IRunningStatus, LongRunningStatus>(x => _runningStatus);
然后该服务开始表现得好像它是由AddSingleton
. 那些。构造函数只被调用一次。而且我可以更改字段的值,Status
并且更改将在另一个控制器中可见。
这种行为让我有点困惑。应该是这样吗?