c# create a closure (see wikipedia if you not familiar with) for you since in the anonymous method body you reference to the assignment variable (which is parameter in your case but this doesn't matter).
You need to create class holder for anonymous delegate (at least c# compiler does this)
then you need to create field in this class since your delegate closeover (i'm not native english so here maybe misspelling )
Assignment assignment parameter
Then in the body of AssignAttribute you should emit class instaniation
IL_0000: newobj instance void V24.Generated.Worker/'<>c__DisplayClass1'::.ctor()
as well as feild assignment
IL_0008: stfld class [nviss]NViss.Assignment V24.Generated.Worker/'<>c__DisplayClass1'::assignment
note that since filed initialization finished anywhere access to local variable was replaced with access to field
once again sorry for my English