Exemple #1
0
    void Test(IFirst first)
    {
        var priv = first as IPrivate;

        if (priv != null)
        {
            priv.Forbidden();
        }
    }
Exemple #2
0
        public void MixinImplementingMoreThanOneInterface()
        {
            ProxyGenerationOptions proxyGenerationOptions = new ProxyGenerationOptions();

            ComplexMixin mixin_instance = new ComplexMixin();

            proxyGenerationOptions.AddMixinInstance(mixin_instance);

            AssertInvocationInterceptor interceptor = new AssertInvocationInterceptor();

            object proxy = generator.CreateClassProxy(
                typeof(SimpleClass),
                proxyGenerationOptions,
                interceptor
                );

            Assert.IsNotNull(proxy);
            Assert.IsTrue(typeof(SimpleClass).IsAssignableFrom(proxy.GetType()));

            Assert.IsFalse(interceptor.Invoked);

            IThird inter3 = proxy as IThird;

            Assert.IsNotNull(inter3);
            inter3.DoThird();

            Assert.IsTrue(interceptor.Invoked);
            Assert.AreSame(proxy, interceptor.proxy);
            Assert.AreSame(mixin_instance, interceptor.mixin);

            ISecond inter2 = proxy as ISecond;

            Assert.IsNotNull(inter2);
            inter2.DoSecond();

            Assert.IsTrue(interceptor.Invoked);
            Assert.AreSame(proxy, interceptor.proxy);
            Assert.AreSame(mixin_instance, interceptor.mixin);

            IFirst inter1 = proxy as IFirst;

            Assert.IsNotNull(inter1);
            inter1.DoFirst();

            Assert.IsTrue(interceptor.Invoked);
            Assert.AreSame(proxy, interceptor.proxy);
            Assert.AreSame(mixin_instance, interceptor.mixin);
        }
Exemple #3
0
 public B(IFirst someProperty) : base(someProperty)
 {
 }
 public OverloadedTestClass(IFirst first, ISecond second, IThird third)
 {
     _first = first;
     _second = second;
     _third = third;
 }
 public OverloadedTestClass(IFirst first, ISecond second)
     : this(first, second, null)
 {
 }
 public OverloadedTestClass(IFirst first)
     : this(first, null, null)
 {
 }
 public void DoSomething(IFirst iFirstThing)
 {
     Console.WriteLine(iFirstThing.SomeMethod());
 }
Exemple #8
0
 private App(IFirst first, ISecond second)
 {
     this.first  = first;
     this.second = second;
 }
 }                                                           // forwarded implementation
 public FirstAndSecond()
 {
     partFirstInstance = new PartFirst(this); // composition in constructor
 }
 public ConsumerForFirstOnly(IFirst first)
 {
     this.first = first;
 }
Exemple #11
0
 public OverloadedTestClass(IFirst first, ISecond second, IThird third)
 {
     _first  = first;
     _second = second;
     _third  = third;
 }
Exemple #12
0
 public OverloadedTestClass(IFirst first, ISecond second)
     : this(first, second, null)
 {
 }
Exemple #13
0
 public OverloadedTestClass(IFirst first)
     : this(first, null, null)
 {
 }