comparison Source/Reflection/Emit/ConstructorBuilderHelper.cs @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f990fcb411a9
1 using System;
2 using System.Reflection.Emit;
3
4 namespace BLToolkit.Reflection.Emit
5 {
6 /// <summary>
7 /// A wrapper around the <see cref="ConstructorBuilder"/> class.
8 /// </summary>
9 public class ConstructorBuilderHelper : MethodBuilderBase
10 {
11 /// <summary>
12 /// Initializes a new instance of the <see cref="ConstructorBuilder"/> class
13 /// with the specified parameters.
14 /// </summary>
15 /// <param name="typeBuilder">Associated <see cref="TypeBuilderHelper"/>.</param>
16 /// <param name="constructorBuilder">A <see cref="ConstructorBuilder"/></param>
17 public ConstructorBuilderHelper(TypeBuilderHelper typeBuilder, ConstructorBuilder constructorBuilder)
18 : base(typeBuilder)
19 {
20 if (constructorBuilder == null) throw new ArgumentNullException("constructorBuilder");
21
22 _constructorBuilder = constructorBuilder;
23 _constructorBuilder.SetCustomAttribute(Type.Assembly.BLToolkitAttribute);
24 }
25
26 private readonly ConstructorBuilder _constructorBuilder;
27 /// <summary>
28 /// Gets ConstructorBuilder.
29 /// </summary>
30 public ConstructorBuilder ConstructorBuilder
31 {
32 get { return _constructorBuilder; }
33 }
34
35 /// <summary>
36 /// Converts the supplied <see cref="ConstructorBuilderHelper"/> to a <see cref="MethodBuilder"/>.
37 /// </summary>
38 /// <param name="constructorBuilder">The <see cref="ConstructorBuilder"/>.</param>
39 /// <returns>A <see cref="ConstructorBuilder"/>.</returns>
40 public static implicit operator ConstructorBuilder(ConstructorBuilderHelper constructorBuilder)
41 {
42 if (constructorBuilder == null) throw new ArgumentNullException("constructorBuilder");
43
44 return constructorBuilder.ConstructorBuilder;
45 }
46
47 private EmitHelper _emitter;
48 /// <summary>
49 /// Gets <see cref="EmitHelper"/>.
50 /// </summary>
51 public override EmitHelper Emitter
52 {
53 get
54 {
55 if (_emitter == null)
56 _emitter = new EmitHelper(this, _constructorBuilder.GetILGenerator());
57
58 return _emitter;
59 }
60 }
61 }
62 }