Error with Invoke method in a domainservice class

447 views Asked by At

i'm new with silverlight/ria and i have a problem wath i don't understand.

I have the following code in my domain services class

[EnableClientAccess()]
[KnownType(typeof(ModeleEmailEa))]
[KnownType(typeof(ModeleSmsEa))]
public class EAEMailDomainService : DomainService
{       

    #region ModeleEnvoiEa CRUD

    [Query()]
    public IQueryable<ModeleEnvoiEa> SelectAllModeleEnvoiEa()
    {
        ModeleEnvoiEaSrv modeleService = new ModeleEnvoiEaSrv();
        return modeleService.GetList<ModeleEnvoiEa>();

    }

    [Update]
    public void UpdateModeleEnvoiEa(ModeleEnvoiEa modele)
    {
        ModeleEnvoiEaSrv modeleService = new ModeleEnvoiEaSrv();
        modeleService.Update(modele);            
    }

    [Insert]
    public void InsertModeleEnvoiEa(ModeleEnvoiEa modele)
    {
        ModeleEnvoiEaSrv modeleService = new ModeleEnvoiEaSrv();
        modeleService.Insert(modele);
    }

    [Delete]
    public void DeleteModeleEnvoiEa(ModeleEnvoiEa modele)
    {
        ModeleEnvoiEaSrv modeleService = new ModeleEnvoiEaSrv();
        modeleService.Delete(modele);
    }       

    [Invoke]
    public void Test(int valeur)
    {
      //Do something
    }

    #endregion 

And this code in my Silverlight application

 Context.Test(2, action =>
        {
           // Do something
        }, null);

The function SelectAll, Update, Delete , Insert work's fine but the 'Test' function generated the following error:

an attempt was made to load a program with an incorrect format

any ideas ?

1

There are 1 answers

0
idefix38 On

I have found that if i write the function invocation like this it's works

Context.Test(2,new System.Action<InvokeOperation<Int>>(ModeleEnvoiEa_Completed),null);            

    }

    void ModeleEnvoiEa_Completed(InvokeOperation invoke)
    { 
      // Do something
    }

but if i use a lambda expression like this, i have an error, why ?

Context.Test(2, action =>
    {
       // This code generate an error
       // an attempt was made to load a program with an incorrect format
    }, null);