Формат Ninject Given Path не поддерживается

Инициализация Ninject работает нормально, когда я запускаю свое приложение непосредственно из VS2010, но если я развертываю приложение в нашей пользовательской среде «плагинов», я получаю эту ошибку, когда запускаю приложение, и оно пытается инициализировать Ninject.

Ошибка во время инициализации

Формат данного пути не поддерживается.

ОШИБКА: формат данного пути не поддерживается. Тип: NotSupportedException Расположение: System.String CanonicalizePath(System.String, Boolean) Трассировка стека: в System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) в System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, логическое значение needFullPath) в System.Security.Permissions.FileIOPermission.AddPathList(доступ к FileIOPermissionAccess, управление AccessControlActions, String[] pathListOrig, логическое значение checkForDuplicates, логическое значение needFullPath, логическое значение copyPathList) в System.Security.Permissions.FileIOPermission..ctor(доступ к FileIOPermissionAccess , String[] pathList, Boolean checkForDuplicates, Boolean needFullPath) в System.IO.Path.GetFullPath(String path) в Ninject.Modules.ModuleLoader.NormalizePath(String path) в Ninject.Modules.ModuleLoader.GetFilesMatchingPattern(String pattern) в Ninject .Modules.ModuleLoader.b_0(строковый шаблон) в System.Linq.Enumerable.d_142.MoveNext() at System.Linq.Lookup2.Create[TSource](IEnum erable1 source, Func2 keySelector, компаратор Func2 elementSelector, IEqualityComparer1) в шаблонах System.Linq.GroupedEnumerable3.GetEnumerator() at Ninject.Modules.ModuleLoader.LoadModules(IEnumerable1) в Ninject.KernelBase.Load(IEnumerable`1 filePatterns) в Ninject.KernelBase..ctor(компоненты IComponentContainer, настройки INinjectSettings, модули INinjectModule[]) в Ninject.KernelBase. .ctor(модули INinjectModule[]) в MyApp.Ioc.ResolveType.Initialize() в MyApp.Program.Run()


person ctrlalt313373    schedule 28.12.2010    source источник


Ответы (1)


Трассировка стека выглядит немного иначе, однако это похоже на проблему, с которой я столкнулся, когда NInject пытался загрузить любые расширения NInject, которые могли существовать, но терпел неудачу, потому что каталог расширений не существовал.

Если каталог существует, то я предполагаю, что код будет работать нормально, даже если каталог пуст.

Я предлагаю изменить ваш объект настроек NInject так, чтобы он не загружал расширения по умолчанию (вам придется передать его в свой конструктор StandardKernel, а не использовать настройки NInject по умолчанию, которые создаются неявно).

Пример:

var settings = new NinjectSettings();
settings.LoadExtensions = false;
var kernel = new StandardKernel(settings);
kernel.load<YourCustomBindingModuleIfAny>();
person Arafangion    schedule 13.02.2011