using System; using System.Collections.Generic; using System.Linq; using System.Text; using Cosmos.IL2CPU.Plugs; namespace Cosmos.IL2CPU.X86.Plugs.CustomImplementations.System { [Plug(Target = typeof(Exception))] public static class ExceptionImpl { //TODO: This drags in CultureInfo and eventually Int64 etc... //public static string ToString(Exception aThis) { // return aThis.Message; //} //[PlugMethod(Signature = "System_String___System_Exception_GetClassName____")] public static unsafe string GetClassName(uint* aThis) { int xObjectType = (int)*aThis; // return VTablesImpl.GetTypeName(xObjectType); return "**Not Able to determine Exception Type**"; } public static string get_Message(Exception aThis, [FieldAccess(Name = "System.String System.Exception._message")]ref string mMessage) { return mMessage; } [PlugMethod(Signature = "System_String__System_Exception_GetMessageFromNativeResources_System_Exception_ExceptionMessageKind_")] public static string GetMessageFromNativeResources(int aKind) { if (aKind == 0x3) { return "Out of memory!"; } return ""; } public static void Ctor(Exception aThis, [FieldAccess(Name = "System.String System.Exception._message")]ref string mMessage, string aMessage) { mMessage = aMessage; } public static string ToString(Exception aThis) { return "Exception: " + aThis.Message; } } }