代码之家  ›  专栏  ›  技术社区  ›  Bill Greer

混淆C#构造函数

c#
  •  2
  • Bill Greer  · 技术社区  · 7 年前

    public class Operator
    {
    [NotNull] readonly IUnityContainer _container;
    [NotNull] readonly ServerWrapper _server;
    
    [UsedImplicitly]
    public Operator()
      : this(r => { })
    {
    }
    

    更新-其他构造函数:

    public Operator([NotNull] Action<IUnityContainer> register)
    {
      _container = new UnityContainer()
        .RegisterType<ISettingsReader, MessageBusSettingsReader>(
          new ContainerControlledLifetimeManager())
        .RegisterType<IImpersonationStrategyFactory, ImpersonationStrategyFactory>();
    
      register(_container);
    
      _operator= new OperatorWrapper(_container.Resolve<ISettingsReader>());
    }
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Cee McSharpface    7 年前

    构造函数提供了回调机制:在实例化 Operator ,作为调用者,可以使用 Action<IUnityContainer> 签名,那就是 void Callback(IUnityContainer c) 例如,或 c => { do_something_with_c(c); } .

    第二个子问题: UsedImplicitly 当一个符号从未被引用,而是要被反射使用或被外部调用时,是为了消除警告的 here .