locked
Passagem de parâmetro para WorkFlow utilizando tipo criado por mim. RRS feed

  • Pergunta

  • Boa tarde, possuo um WorkFlow de estados que muda os estados tranquilo.

    Porém em um determinado estado possuo dentro de um EventDriven um CallExternalMethod que aponta para um componente de envio de email
    apontando p/ uma classe SmtpService (implemebnta ISmtpService)  e p/ um metodo chamado EnviaEmail.

    O problema todo é que o meu método EnviaEmail não recebe tipos primitivos (como string ou int, pois fiz o teste e se fosse assim funcionaria), ele recebe um objeto que é a instancia de uma classe criada por mim chamada EmailModel, e na hora de executar o método EnviaEmail o parâmetro está como nulo.

    Na aplicação está assim:

    Dictionary<string,object> parametros = new Dictionary<string,object>();
    EmailModel email = new EmailModel();
    parametros.Add("EmailAprovacao",email);
    WorkFlowInstance instance = runtime.CreateWorkFlow(typeof(MeuWorkFlow),parametros);

    É claro que existe uma propriedade no código do meu WorkFlow chamado EmailAprovacao, e no CallExternalMethod esta propriedade esta definido como parâmetro, então a questão toda é:

    _Porque consigo efetuar a passagem de parâmetros de tipos primitivos e não de um tipo criado por mim?
    _E como contornar isto.

    Se o post foi útil marque como resposta. - Advanced Web Application - MCP
    segunda-feira, 18 de maio de 2009 18:07

Respostas

  • Pessoal, já encontrei a solução, foi um vacilo meu aqui.

    Basta definir a classe do objeto a ser passado como serializavel.

    [Serializable]
    public class EmailModel


    Se o post foi útil marque como resposta. - Advanced Web Application - MCP
    segunda-feira, 18 de maio de 2009 19:20