예제 #1
0
        public static void SetFileManager(IFileManager fileManager)
        {
            if (fileManager != null)
            {
                if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                {
                    _getCurrentDirectoryDelegateUtf16 = fileManager.GetCurrentDirectory;
                    _fileExistsDelegateUtf16          = fileManager.FileExists;
                    _isAbsolutePathDelegateUtf16      = fileManager.IsAbsolutePath;
                    _toAbsolutePathDelegateUtf16      = fileManager.ToAbsolutePath;
                    _readFileDelegateUtf16            = fileManager.ReadFile;

                    Sass_Api.sass_file_manager_set_get_current_directory_delegate_utf16(_getCurrentDirectoryDelegateUtf16);
                    Sass_Api.sass_file_manager_set_file_exists_delegate_utf16(_fileExistsDelegateUtf16);
                    Sass_Api.sass_file_manager_set_is_absolute_path_delegate_utf16(_isAbsolutePathDelegateUtf16);
                    Sass_Api.sass_file_manager_set_to_absolute_path_delegate_utf16(_toAbsolutePathDelegateUtf16);
                    Sass_Api.sass_file_manager_set_read_file_delegate_utf16(_readFileDelegateUtf16);
                }
                else
                {
                    _getCurrentDirectoryDelegateUtf8 = fileManager.GetCurrentDirectory;
                    _fileExistsDelegateUtf8          = fileManager.FileExists;
                    _isAbsolutePathDelegateUtf8      = fileManager.IsAbsolutePath;
                    _toAbsolutePathDelegateUtf8      = fileManager.ToAbsolutePath;
                    _readFileDelegateUtf8            = fileManager.ReadFile;

                    Sass_Api.sass_file_manager_set_get_current_directory_delegate_utf8(_getCurrentDirectoryDelegateUtf8);
                    Sass_Api.sass_file_manager_set_file_exists_delegate_utf8(_fileExistsDelegateUtf8);
                    Sass_Api.sass_file_manager_set_is_absolute_path_delegate_utf8(_isAbsolutePathDelegateUtf8);
                    Sass_Api.sass_file_manager_set_to_absolute_path_delegate_utf8(_toAbsolutePathDelegateUtf8);
                    Sass_Api.sass_file_manager_set_read_file_delegate_utf8(_readFileDelegateUtf8);
                }

                Sass_Api.sass_file_manager_set_supports_conversion_to_absolute_path(
                    fileManager.SupportsConversionToAbsolutePath);
                Sass_Api.sass_file_manager_set_is_initialized(true);
            }
            else
            {
                UnsetFileManager();
            }
        }