https://dotnetfiddle.net/446j0U link to reproduce (failed on .net 4.7.2 not on .net core)
public class TEST {
static public void Main(string[] args)
{
var test = new { Text = "test", Slab = "slab"};
Console.WriteLine(test.Text); //outputs test
Console.WriteLine(TEST.TestMethod(test)); //outputs slab
}
static public string TestMethod(dynamic obj)
{
return obj.Slab;
}
}
access to anonymous object in the same function is working OK but when I try to pass it in the function I'm getting exception
Run-time exception (line 14): Attempt by method 'DynamicClass.CallSite.Target(System.Runtime.CompilerServices.Closure, System.Runtime.CompilerServices.CallSite, System.Object)' to access type '<>f__AnonymousType0`2' failed.
Stack Trace:
[System.TypeAccessException: Attempt by method 'DynamicClass.CallSite.Target(System.Runtime.CompilerServices.Closure, System.Runtime.CompilerServices.CallSite, System.Object)' to access type '<>f__AnonymousType0`2' failed.] at CallSite.Target(Closure , CallSite , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at TEST.TestMethod(Object obj) :line 14 at TEST.Main(String[] args) :line 9
Edit by @RandRandom:
Since the bounty period is almost over, I decided to edit this question.
The given answers so far all fail to actually answer the problem at hand and only give ways to avoid the error.
OP clearly stated (in comments) that he is aware of workarounds and is currently using a workaround.
Those questions still remain
- WHY is the mentioned error occuring on OPs setup and on dotnetfiddle.net?
- If the error got fixed with an update what would OP need to update?
- Got the problem fixed in a new compiler / .Net Version / Visual Studio version?
To recap here are OP's Information so far:
- VS 2017
- .Net Framework 4.8