public static ICallingConvention Get(CallingConventions callingConvention)
{
switch (callingConvention)
{
case CallingConventions.Cdecl:
return Singleton<CdeclCallingConvention>.Instance;
case CallingConventions.Stdcall:
return Singleton<StdcallCallingConvention>.Instance;
case CallingConventions.Fastcall:
return Singleton<FastcallCallingConvention>.Instance;
case CallingConventions.Thiscall:
return Singleton<ThiscallCallingConvention>.Instance;
default:
throw new ApplicationException("Unsupported calling convention.");
}
}