Como determinar a propriedade de tamanho para parâmetros de saída do procedimento armazenado na camada de acesso a dados C #

Eu fiz uma camada de acesso a dados modelada descaradamente fora da implementação do ActiveRecord do Castle Project. Para que ele ganhe aceitação, ele deve suportar a extensa biblioteca de procedimentos armazenados em uso na minha organização, que foram escritos para usar todas as estruturas de entrada / saída imagináveis, incluindo valores de retorno e parâmetros de saída de todos os tipos de dados concebíveis.

Meu problema está em desenvolver o código que adiciona o parâmetro de saída à coleção de parâmetros do objeto Command usado para executar o procedimento armazenado. No momento, estou usando apenas um grande valor padrão, esperando que seja o suficiente para capturar todos os casos, mas isso parece ruim.

Como posso saber antecipadamente o comprimento do parâmetro de saída?

Aqui está minha classe DAL, usando atributos para denotar o parâmetro de saída:

 [StoredProcedure("usp_PostARTransaction", OperationType.Insert)]
    public class ARTranPost : DataObjectBase<ARTranPost>
    {
        [StoredProcedureParameter("sARTranID",OperationType.Insert,ParameterDirection.Output)]
        public string ARTranID {get;set;}
        [StoredProcedureParameter("sDueDate", OperationType.Insert, ParameterDirection.Input)]
        public string DueDate { get; set; }
        [StoredProcedureParameter("sPostDate", OperationType.Insert, ParameterDirection.Input)]
        public string PostDate { get; set; }

    }

Preciso usar o SMO ou alguma outra biblioteca para obter o comprimento do banco de dados?

questionAnswers(3)

yourAnswerToTheQuestion