| 
0
 | 
     1 <p class="j">All BLToolkit aspects are implemented as attributes and have to be applied to 
 | 
| 
 | 
     2 abstract or virtual members of an abstract class. 
 | 
| 
 | 
     3 You need to use <b>TypeAccessor<T>.CreateInstance()</b> method to create an instance of the class. 
 | 
| 
 | 
     4 BLToolkit class builder creates an actual class and applies aspects to abstract and virtual members 
 | 
| 
 | 
     5 by overriding the members and emitting (see <b>System.Reflection.Emit</b> namespace) 
 | 
| 
 | 
     6 additional code around them.
 | 
| 
 | 
     7 </p>
 | 
| 
 | 
     8 <ct_table>
 | 
| 
 | 
     9 <ct_hr>
 | 
| 
 | 
    10 <ct_item link='AsyncAspect.htm'       label='Async aspect'      /><ct_hr>
 | 
| 
 | 
    11 <ct_text>Cache aspect</ct_text>
 | 
| 
 | 
    12 <ct_item link='CacheAspect.htm'       label='Cache aspect'      />
 | 
| 
 | 
    13 <ct_item link='NoCacheAttribute.htm'  label='NoCache attribute' />
 | 
| 
 | 
    14 <ct_item link='ClearCacheAspect.htm'  label='ClearCache aspect' /><ct_hr>
 | 
| 
 | 
    15 <ct_item link='CounterAspect.htm'     label='Counter aspect'    /><ct_hr>
 | 
| 
 | 
    16 <ct_item link='LoggingAspect.htm'     label='Logging aspect'    /><ct_hr>
 | 
| 
 | 
    17 <ct_item link='MixinAspect.htm'       label='Mixin aspect'      /><ct_hr>
 | 
| 
 | 
    18 <ct_item link='NotNullAttribute.htm'  label='NotNull attribute' /><ct_hr>
 | 
| 
 | 
    19 <ct_item link='OverloadAspect.htm'    label='Overload aspect'   /><ct_hr>
 | 
| 
 | 
    20 </ct_table>
 |