Postsharp will crash if there is a method with an out or ref parameter.

Sample :

  public class MyEntity : Entity
    [Field, Key]
    public int Id { get; private set; }

    [Field(Length = 100)]
    public string Text { get; set; }

    public void DoSomething(out MyEntity myentity)
      myentity = null;

    public void DoSomething2(ref MyEntity myentity)
      myentity = null;

Exception at compilation:

Error   1   Unhandled exception (, 32 bit, CLR 4.0, Release): System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at PostSharp.AspectWeaver.Transformations.ArgumentsWriter.EmitLoadArguments(InstructionWriter instructionWriter)
   at PostSharp.AspectWeaver.Transformations.ArgumentsWriter.^C0S6plPn.EmitStoreByRefArgument(Int32 _0, InstructionWriter _1, Action`1 _2)
   at PostSharp.AspectWeaver.Transformations.ArgumentsWriter.EmitStoreByRefArgument(Int32 index, MethodMappingWriter methodMappingWriter, InstructionWriter instructionWriter)
   at ^1gq46AVh1jKu.^/1JyDPoZ5pES.^h4HWFf13.^MNbxG17j(ArgumentsWriter _0, MethodMappingWriter _1, InstructionWriter _2)
   at ^1gq46AVh1jKu.^/1JyDPoZ5pES.^h4HWFf13.WeaveOnException(InstructionBlock _0, ITypeSignature _1, InstructionWriter _2)
   at PostSharp.AspectInfrastructure.Helpers.MethodBodyWrappingImplementation.Implement(Boolean hasOnEntry, Boolean hasOnSuccess, Boolean hasOnExit, ITypeSignature[] exceptionTypes)
   at ^1gq46AVh1jKu.^/1JyDPoZ5pES.^h4HWFf13.^r4DISfQ8()
   at ^1gq46AVh1jKu.^/1JyDPoZ5pES.Implement(MethodBodyTransformationContext _0)
   at ^j1TTpdjykhlv.^LuETqvLKzZPB(MetadataDeclaration _0, MetadataDeclaration _1, MethodSemantics _2, InstructionBlock _3, Object[] _4, CanonicalMethodMapping _5, LocalVariableSymbol _6, InstructionSequence _7, TypeDefDeclaration _8, PipelineTransversalState _9)
   at ^MznFwdI/QV4L.^HvVDHXOj(MetadataDeclaration _0, IDependencyTransformationInstance[] _1, PipelineTransversalState _2, MethodSemantics _3)
   at PostSharp.AspectInfrastructure.AspectInfrastructureTask.^jwku0geZ(MetadataDeclaration _0, PipelineTransversalState _1, MethodSemantics _2, Boolean _3)
   at PostSharp.AspectInfrastructure.AspectInfrastructureTask.^KzeTZ0pV(IMetadataDeclaration _0)
   at PostSharp.AspectInfrastructure.StructuredDeclarationDictionary`1.^d+wOzSPF(IMetadataDeclaration _0, Func`2 _1)
   at PostSharp.AspectInfrastructure.StructuredDeclarationDictionary`1.^+g+TCqVg(TypeDefDeclaration _0, Func`2 _1, Set`1 _2)
   at PostSharp.AspectInfrastructure.StructuredDeclarationDictionary`1.^fJqG(Func`2 _0)
   at PostSharp.AspectInfrastructure.AspectInfrastructureTask.Execute()
   at PostSharp.Extensibility.Project.ExecutePhase(String phase)
   at PostSharp.Extensibility.Project.Execute()
   at PostSharp.Hosting.PostSharpObject.ExecuteProjects()
   at PostSharp.Hosting.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation)  d:\code\DoCrashPostsharp\DoCrashPostsharp\POSTSHARP DoCrashPostsharp

I will let you handle this one, because I do not know if this comes from an aspect implementation or postsharp.

I suspect this comes from the TransactionalAspect being broadcasted to all methods.

This is particularly cumbersome because the error does not indicate the file causing the exception : I had to manually remove all files to project, then re-add them one by one, then commenting methods one by one to find the source of the crash.

Updated at 25.05.2010 11:31:11


This thread was imported from our support forum. The original discussion may contain more detailed answer.

asked May 18 '10 at 13:36

olorin's gravatar image


edited Sep 08 '10 at 06:09

Alex%20Yakunin's gravatar image

Alex Yakunin

Thanks, I've opened the following issue: ... ail?id=655 for further investigation.

(May 18 '10 at 13:36) Dmitri Maximov Dmitri%20Maximov's gravatar image

I just reported this to PostSharp team. We'll try to fix the issue ASAP.

(May 18 '10 at 13:36) Alex Yakunin Alex%20Yakunin's gravatar image

Fixed in PostSharp v2.0.5.1207. This version is bundled into v4.3 RC2 - its installer will be available on this weekend.

(May 18 '10 at 13:36) Alex Yakunin Alex%20Yakunin's gravatar image

One Answer:

Fixed in PostSharp v2.0.5.1207

answered Sep 07 '10 at 04:16

olorin's gravatar image


Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
toggle preview


Once you sign in you will be able to subscribe for any updates here



Asked: May 18 '10 at 13:36

Seen: 2,862 times

Last updated: Sep 08 '10 at 06:09

powered by OSQA