为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Azure Service Fabric ASP.NET Core 有状态服务中获取

如何在 Azure Service Fabric ASP.NET Core 有状态服务中获取

C#
噜噜哒 2022-01-09 10:25:20
我们如何访问有状态服务的 Controller 类中的 ParitionInfo 对象?这是该对象的链接:https : //docs.microsoft.com/en-us/dotnet/api/system.fabric.servicenotification.partitioninfo?view=azure-dotnetpublic class MyConntroller : ControllerBase{  [HttpPost]  public async Task<IActionResult> Save(MyObject obj)  {     //Here I would like to access ParitionInfo object. How?!  }}这是 ASP.NET Core 有状态服务中的服务定义,可以从定义它的基类轻松获取对象:    /// <summary>    /// The FabricRuntime creates an instance of this class for each service     /// type instance.     /// </summary>    internal sealed class MyStatefulService : StatefulService    {        public MyStatefulService(StatefulServiceContext context)            : base(context)        { }        /// <summary>        /// Optional override to create listeners (like tcp, http) for this service instance.        /// </summary>        /// <returns>The collection of listeners.</returns>        protected override IEnumerable<ServiceReplicaListener> CreateServiceReplicaListeners()        {            return new ServiceReplicaListener[]            {                new ServiceReplicaListener(serviceContext =>                    new KestrelCommunicationListener(serviceContext, (url, listener) =>                    {                        ServiceEventSource.Current.ServiceMessage(serviceContext, $"Starting Kestrel on {url}");                    }))            };        }我应该创建一个单例类,通过 DI 连接它,然后让 DI 框架将其实例传递给控制器类吗?是否有更好的捷径来实现访问 ParitionInfo 数据的目标?
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

你在正确的道路上。IStatefulServicePartition向您的MyConntroller构造函数添加一个参数。在ConfigureServices,注册服务分区使用this.Partition

例如:

.AddSingleton<IStatefulServicePartition>(this.Partition)


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信