/// <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);
        }
示例#2
0
 /// <summary>
 /// ICustomAccessor を登録します。
 /// 登録すると ICustomAccessor で対応している型 T を StreamAccessor の Read/Write 関数で読み書きできる様になります。
 /// </summary>
 /// <param name="accessor">登録する ICustomAccessor を指定します。</param>
 public static void RegisterCustomAccessor(ICustomAccessor accessor)
 {
     RegisterCustomReader(accessor);
     RegisterCustomWriter(accessor);
 }