/// <summary> /// Create accessors for custom activities, It is a genetic method. /// </summary> /// <typeparam name="T"> /// Type of custom accessor, type should implement ICustom accessor interface. /// </typeparam> /// <param name="transaction"> /// Connection object for database operations /// </param> /// <returns> /// Accessor specified in generic type /// </returns> public override T CreateCustomAccessor <T>(IDbTransaction transaction) { ICustomAccessor customAccessor = null; // Checks for type of custom accessor interface given and // create sql accessors according to that if (typeof(T) == typeof(ICustomDataAccessor)) { // create sql custom accessor customAccessor = new SqlCustomDataAccessor((SqlTransaction)transaction); } else if (typeof(T) == typeof(IBulkDataAccessor)) { // create bulk accessors customAccessor = new SqlBulkDataAccessor(); } return((T)customAccessor); }
/// <summary> /// ICustomAccessor を登録します。 /// 登録すると ICustomAccessor で対応している型 T を StreamAccessor の Read/Write 関数で読み書きできる様になります。 /// </summary> /// <param name="accessor">登録する ICustomAccessor を指定します。</param> public static void RegisterCustomAccessor(ICustomAccessor accessor) { RegisterCustomReader(accessor); RegisterCustomWriter(accessor); }