Я создал сортировщик массивов для сортировки массивов, как в Win Explorer в модуле DNN. Как в ответе на предварительный вопрос:
При запуске модуля пользователь получает следующую ошибку (см. Ниже). Я не особо опытный разработчик ASP.NET. Эта ошибка вызвана тем, что я использовал StrCmpLogicalW в моем IComparer и в настоящее время используется на платформе, не поддерживающей StrCmpLogicalW. Или это вызвано проблемой с разрешениями.
Любая помощь приветствуется,
Большое спасибо.
Вот сортировщик, вызывающий ошибку.
Public Class nvSorter
Implements IComparer(Of String)
Declare Unicode Function StrCmpLogicalW Lib "shlwapi.dll" ( _
ByVal s1 As String, _
ByVal s2 As String) As Int32
Public Function Compare(ByVal x As String, ByVal y As String) As Integer Implements System.Collections.Generic.IComparer(Of String).Compare
Return StrCmpLogicalW(x, y)
End Function
End Class
А это трассировка стека исключений:
InnerException: не удалось сравнить два элемента в массиве.
Сообщение: DotNetNuke.Services.Exceptions.PageLoadException: не удалось сравнить два элемента в массиве. --- |> System.InvalidOperationException: не удалось сравнить два элемента в массиве. --- |> System.Security.SecurityException: System.Security.Permissions.SecurityPermission в Nukeville.Modules.SkinLab.View.nvSorter.Compare (String x, String y) в System.Collections.Generic.ArraySortHelper
1.SwapIfGreaterWithItems(T[] keys, IComparer
1 компаратор, Int32 a, Int32 b) в компараторе System.Collections.Generic.ArraySortHelper1.QuickSort(T[] keys, Int32 left, Int32 right, IComparer
1) в компараторе System.Collections.Generic.GenericArraySortHelper1.Sort(T[] keys, Int32 index, Int32 length, IComparer
1) Тип первого неудачного разрешения был: System.Security.Permissions.SecurityPermission Зона сборки MyComputer была: --- Конец внутренней трассировки стека исключений --- в компараторе System.Collections.Generic.GenericArraySortHelper1.Sort(T[] keys, Int32 index, Int32 length, IComparer
1) в компараторе System.Array.Sort [T] (массив T [], индекс Int32, длина Int32, компаратор IComparer1 comparer) at System.Array.Sort[T](T[] array, IComparer
1) в Nukeville.Modules .SkinLab.View.GetNVFolder (String ParentName, String [] cf) в Nukeville.Modules.SkinLab.View.GetJavaFolderArrays (String RootPath) в Nukeville.Modules.SkinLab.View.Page_PreRender (Object s, EventArgs e) в System.Web .UI.Control.OnPreRender (EventArgs e) в System.Web.UI.Co ntrol.PreRenderRecursiveInternal () в System.Web.UI.Control.PreRenderRecursiveInternal () в System.Web.UI.Control.PreRenderRecursiveInternal () в System.Web.UI.Control.PreRenderRecursiveInternal () в System.Web.UI PreRenderRecursiveInternal () в System.Web.UI.Control.PreRenderRecursiveInternal () в System.Web.UI.Control.PreRenderRecursiveInternal () в System.Web.UI.Control.PreRenderRecursiveInternal () в System.Web.UI.RecursiveInternal () в System.Web.UI.RecursiveInternal () ) в System.Web.UI.Control.PreRenderRecursiveInternal () в System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- Конец трассировки стека внутренних исключений ---