首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查以前在DryIoC中创建的服务

检查以前在DryIoC中创建的服务
EN

Stack Overflow用户
提问于 2022-06-27 20:44:00
回答 1查看 37关注 0票数 1

如何检查以前在DryIoC中当前范围内创建的服务?

如果没有使用dryioc创建服务,我希望阻止创建服务。

在本例中,我需要一个类似于IsResolved的函数:

代码语言:javascript
复制
    container.Register<S>();
    if (container.IsResolved<S>()==true){ //always false
      //Do any thing
     }
    var s = container.Resolve<S>();
    if (container.IsResolved<S>()==true){ //always true
      //Do any thing
     }

注:IsResolved未在DryIoC中找到

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-29 19:40:58

您可以注册存储标志装潢工IsResolved

代码语言:javascript
复制
[Test]
public void Using_decorator_to_implement_IsResolved()
{
    var c = new Container();

    c.Register<Abc>();

    var d = new AbcDecorator();
    c.RegisterDelegate<Abc, Abc>(a => d.Decorate(a), setup: Setup.Decorator);

    Assert.IsFalse(d.IsResolved);

    var abc = c.Resolve<Abc>();
    Assert.IsNotNull(abc);

    Assert.IsTrue(d.IsResolved);
}

class Abc {}
class AbcDecorator 
{
    public bool IsResolved { get; private set; }
    public Abc Decorate(Abc a)
    {
        IsResolved = true;
        return a;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72778087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档