CPF/CPF.Mac/Mac/CoreFoundation/CFExceptionDataKey.cs
2023-11-21 23:05:03 +08:00

40 lines
1.1 KiB
C#

using CPF.Mac.Foundation;
using CPF.Mac.ObjCRuntime;
using System;
namespace CPF.Mac.CoreFoundation
{
public static class CFExceptionDataKey
{
public static readonly NSString Description;
public static readonly NSString LocalizedDescription;
public static readonly NSString LocalizedFailureReason;
public static readonly NSString LocalizedRecoverySuggestion;
public static readonly NSString UnderlyingError;
static CFExceptionDataKey()
{
IntPtr intPtr = Dlfcn.dlopen("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", 0);
if (!(intPtr == IntPtr.Zero))
{
try
{
Description = Dlfcn.GetStringConstant(intPtr, "kCFErrorDescriptionKey");
LocalizedDescription = Dlfcn.GetStringConstant(intPtr, "kCFErrorLocalizedDescriptionKey");
LocalizedFailureReason = Dlfcn.GetStringConstant(intPtr, "kCFErrorLocalizedFailureReasonKey");
LocalizedRecoverySuggestion = Dlfcn.GetStringConstant(intPtr, "kCFErrorLocalizedRecoverySuggestionKey");
UnderlyingError = Dlfcn.GetStringConstant(intPtr, "kCFErrorUnderlyingErrorKey");
}
finally
{
Dlfcn.dlclose(intPtr);
}
}
}
}
}