Ejemplo n.º 1
0
        public InstanceConstructorFrame(ConstructorInstance instance, DisposeTracking disposal, Variable[] arguments,
                                        SetterArg[] setterParameters) : base(instance.ImplementationType, instance.Constructor, f => new ServiceVariable(instance, f, ServiceDeclaration.ServiceType))
        {
            Disposal = disposal;

            Parameters = arguments;

            switch (disposal)
            {
            case DisposeTracking.None:
                Mode = ConstructorCallMode.Variable;
                break;

            case DisposeTracking.WithUsing:
                Mode = ConstructorCallMode.UsingNestedVariable;
                break;

            case DisposeTracking.RegisterWithScope:
                Mode = ConstructorCallMode.Variable;
                var addDisposable = MethodCall.For <Scope>(s => s.TryAddDisposable(null));
                addDisposable.Arguments[0] = Variable;
                ActivatorFrames.Add(addDisposable);
                break;
            }

            Setters.AddRange(setterParameters);
        }
Ejemplo n.º 2
0
 public XamlAstClrProperty(IXamlLineInfo lineInfo, string name, IXamlType declaringType,
                           IXamlMethod getter, IEnumerable <IXamlPropertySetter> setters) : base(lineInfo)
 {
     Name          = name;
     DeclaringType = declaringType;
     Getter        = getter;
     if (setters != null)
     {
         Setters.AddRange(setters);
     }
 }