Fixing an issue with output parameters that are of type IntPtr
[castle.git] / InversionOfControl / Castle.MicroKernel.Tests / ClassComponents / Repository.cs
blob4985f50381307ebfe5e2df7c73842aacd6505519
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.MicroKernel.Tests.ClassComponents
17 public interface IRepository
21 public interface IRepository<T> : IRepository
22 where T : class
24 T Find();
27 public class DecoratedRepository : IRepository
29 public DecoratedRepository()
34 public class Repository1 : IRepository
36 private IRepository _inner;
38 public IRepository InnerRepository
40 get { return _inner; }
43 public Repository1(IRepository inner)
45 _inner = inner;
49 public class Repository2 : IRepository
51 private IRepository _inner;
53 public IRepository InnerRepository
55 get { return _inner; }
58 public Repository2(IRepository inner)
60 _inner = inner;
64 public class Repository3 : IRepository
66 private IRepository _inner;
68 public IRepository InnerRepository
70 get { return _inner; }
73 public Repository3(IRepository inner)
75 _inner = inner;
79 public class DefaultRepository<T> : IRepository<T>
80 where T : class, new()
82 public T Find()
84 return new T();