Consider the code below. Looks like perfectly valid C# code right?
//Project B
using System;
public delegate void ActionSurrogate(Action addEvent);
//public
This probably is a problem with type inferance, apperently the compiler infers a as an Action instead of Action (it might think a is ActionSurrogate, which would fit the Action signature). Try specifying the type of a explicitly:
ActionSurrogate b = (Action a) =>
{
a();
};
If this is not the case - might check around your project for any self defined Action delegates taking one parameter.