2017-01-06 10 views
1

Я создаю приложение для самостоятельного запуска на C#, используя Service Stack. Я хочу, чтобы приложение обменивалось контентом на основе некоторых данных конфигурации.Сопоставление статических файловых каталогов в ServiceStack

Во время AppHost.Configure Я хотел бы прочитать в файле конфигурации и рекурсивно поделиться несколькими каталогами. Каталоги могут быть локальными или общими папками в зависимости от каждого элемента конфигурации.

Например, если моя конфигурация выглядит следующим образом:

[ 
    { 
     "sourceId": "TEST1", 
     "contentPath": "\\\\nas01\\files" 
    }, 
    { 
     "sourceId": "TEST2", 
     "contentPath": "d:\\files" 
    } 
] 

Я хотел бы каталоги быть рекурсивно доступны так:

http://localhost/TEST1/.... 
http://localhost/TEST2/.... 

Чтение файла конфигурации не проблема, на самом деле , Я просто хочу знать правильный способ сопоставления этих каталогов, чтобы я мог использовать встроенные возможности статической обработки ServiceStack.

Так что я думаю, мой вопрос:

Что это правильный путь, в Service Stack, чтобы отобразить статического содержимого каталога во время выполнения?

Большое спасибо!

-Z

ответ

2
в this commit была добавлена ​​

Новая поддержка для FileSystem карт, которые теперь можно регистрировать файловую систему отображение с помощью переопределения GetVirtualFileSources() в вашем AppHost, например:

public override List<IVirtualPathProvider> GetVirtualFileSources() 
{ 
    var existingProviders = base.GetVirtualFileSources(); 
    existingProviders.Add(new FileSystemMapping(this, "TEST1", "\\\\nas01\\files")); 
    existingProviders.Add(new FileSystemMapping(this, "TEST2", "d:\\files")); 
    return existingProviders; 
} 

Это изменение можно получить v4.5.5 + это сейчас available on MyGet.

+0

Большое спасибо за это! Работает ли эта методика, если новые новые каталоги добавляются в отображаемые пути или требуется, чтобы объект FileSystemMapping был повторно инициализирован? – zorlack

+0

@zorlack Да, это не кеш-память, поэтому он будет находить новые файлы/dirs, добавленные во время выполнения. – mythz

 Смежные вопросы

  • Нет связанных вопросов^_^