Если вам абсолютно нужна локальная копия файла, вам нужно будет открыть InputStream
копию содержимого в локальный файл, в котором вы знаете путь, а затем перейти оттуда. Sidenote: Guava ByteStreams#copy
- это простой способ выполнить это.
Конечно, этот файл больше не поддерживается исходным источником Uri, поэтому я не думаю, что это то, что вы хотите. Вместо этого вы должны работать с API-интерфейсом Uri. Взгляните на Storage Access Framework
Изменить
Вот как вы можете получить InputStream
из вашего Uri
InputStream inputStream = getContentResolver().openInputStream(uri);
Linqpad - я все время так использую. http://www.linqpad.net/
Не вводите в заблуждение название - оно просто описывает первоначальную мотивацию, а не его функциональность.
Совсем недавно он выпустил версию с правильным завершением выписки - это платное дополнение (основной инструмент бесплатный), но, думаю, за небольшую сумму денег, и оно того стоит.
Источники проекта Roslyn содержат REPL под названием CSI ( http://source.roslyn.io/#csi/Csi.cs ). Класс Csi в настоящее время является внутренним, но с проектом «csi» (Roslyn.sln: Interactive / Hosts / csi) доступно исполняемое консольное приложение, которое поддерживает e. г. команда #r для загрузки сборки и #load для загрузки и выполнения файлов сценария (запустите CSI и используйте #help).
Я также обнаружил, что SharpDevelop настолько быстр и легок, что это самый простой способ запустить быстрый тестовый проект.
Обновление: http://avillenas.com/post/interactive-c
Ну, вы можете попробовать это.
Я сделал то, что ты хотел сделать. Нажмите здесь, чтобы увидеть GIF
Если вы знаете и любите Python, то IronPython может быть хорошей альтернативой. Он поставляется с (Python) консолью REPL (ipy.exe), где вы можете импортировать и использовать все типы .Net.
Я считаю, что это полезно для тестирования мелочей, в точности как DateTime.Parse("Blah")
.
Обратите внимание, что он на самом деле не может выполнить код C #, но если все, что вам нужно, это доступ к .Net, то он идеален. Кроме того, если вы установите IronPython Tools для VS , вы можете запустить сеанс REPL прямо в VS, используя одну комбинацию клавиш (Alt + I), и оставить ее работающей в закрепленном окне, когда вам это нужно.
Как вы предлагаете, PowerShell может делать то, что вы хотите. Например, чтобы протестировать ваш DateTime.Parse, вам пригодится следующий вкладыш:
PS C: \ Documents and Settings \ Dan> [System.DateTime] :: Parse («Бла») )
Исключение, вызывающее «Parse» с аргументом (ами) «1»: «Строка не была распознана как допустимый DateTime. Существует неизвестное слово, начинающееся с индекса 0.» В строке: 1 символ: 25 + [System.DateTime] :: Parse (< < < "Blah")
PS C: \ Documents and Settings \ Dan> [Система .DateTime] :: Parse ("1/2/3")
01 февраля 2003 00:00:00
Обратите внимание, что в приведенном выше примере используется текущая версия PowerShell (v1). +0,0). Следующая версия PowerShell позволит вам более непосредственно смешивать C # со сценариями PowerShell. Чтобы разжечь аппетит, посмотрите этот 7-минутный скринкаст « C # для PowerShell » Дуга Финке . Очень впечатляет!
Используйте LINQPad .
Несмотря на имя, оно может выполнять любой код на C # или VB, от простых выражений до целых классов.
Кроме того, он может визуализировать целые графы объектов в результатах.
Вы даже можете добавлять ссылки на свои собственные сборки.
Если бы вы могли подождать некоторое время ... похоже, что для C # 4.0 может существовать эквивалент C # для irb Ruby вовремя, Андерс Х. продемонстрировал сеанс интерактивной консоли, где вы могли бы ввести произвольный код C # и увидеть результаты в его ' Часть будущего C # на PDC 2008. Вы можете даже извлечь из него окно WPF, а затем поиграть с ним через интерфейс консоли. Довольно круто.
В соответствии с ответом Лассевка, я получил «Сниппи» . Это было разработано для C # в глубине, и пользовательский интерфейс довольно мусор, но он работает - и позволяет вам писать дополнительные члены (методы, вложенные классы и т. Д.), Например,
public static void Foo()
{
Console.WriteLine("Hello");
}
...
Foo();
(... используется, чтобы сказать Сниппи, что «все, что здесь находится, принадлежит Мэйну».)
Попробуйте C # REPL Script Environment , которая является частью платформы O2 . Это именно то, что вы просите.
Это даст вам идеальную среду, чтобы опробовать все функции и API C # (концептуально среда O2 REPL похожа на LinqPAD)
Вам также следует взглянуть на Roslyn от Microsoft. В множественных инструментах, основанных на Roslyn (все работают автономно вне VisualStudio) , первый - простой REPL Roslyn
Вы можете найти полезную Стенд для тестирования объектов. Это не очень хорошо известно, но позволяет создавать экземпляры классов, выполнять статические методы и так далее. Это может быть полезно для обнаружения того, как использовать незнакомые API, или для быстрой отладки ваших собственных классов и методов, сохраняя создание тестового жгута для простых проверок.
Документацию по MSDN можно найти здесь:
http://msdn.microsoft.com/en-us/library/c3775d98%28VS.80%29.aspx
Если вы используете Mono, вот что:
Don Box взломал что-то очень простое несколько лет назад тоже .
Проект Mono включает в себя интерактивную оболочку C #, это может быть именно то, что вы ищете.
C # Интерактивное окно и csi.exe REPL были добавлены в Visual Studio 2015 Обновление 1 :
Представляем Интерактивный
Интерактивное окно возвращается! Интерактивное окно C # возвращается в Visual Studio 2015 Update 1 вместе с несколькими другими интерактивными предложениями:
- [+1110]
C # Interactive . Интерактивное окно C # по сути представляет собой цикл чтения-чтения-печати (REPL), который позволяет вам играть и изучать с использованием технологий .NET, используя преимущества таких функций редактора, как IntelliSense, окрашивание синтаксиса и т. Д. Узнайте больше о том, как использовать C # Интерактивно на 9 канале или читая прохождение для нашего новичка.
ЦСИ . Если вы не хотите открывать Visual Studio для работы с C # или запускать файл сценария, вы можете получить доступ к интерактивному движку из командной строки разработчика. Введите
csi /path/myScript.csx
, чтобы выполнить файл сценария, или простоcsi
, чтобы попасть внутрь командной строки REPL.API сценариев . API сценариев дают вам возможность выполнять фрагменты кода C # в создаваемой хостом среде выполнения. Вы можете узнать больше о том, как создать свой собственный движок сценариев C #, ознакомившись с нашими примерами кода.
См. Что нового в Visual Studio 2015, обновление 1 для управляемых языков .NET .
Теперь у вас есть:
csi foo.csx
из командной строки Dev Cmd csi
из командной строки Dev Cmd Мы только что выпустили CShell полнофункциональную C # REPL IDE. Он поддерживает завершение кода, файлы сценариев, добавление ссылок и действительно расширяемый. Также мы планируем добавить поддержку NuGet в ближайшее время, что позволит очень быстро написать код и посмотреть, как он работает.
Мы любим LINQPad, но у него нет REPL, код выполняется один раз, и вы не сможете ничего сделать с результатами, если не измените сценарий и снова не запустите весь сценарий. Это хорошо, но иногда, если вы хотите еще больше ощущения скрипки, чем оценивать ваш код в REPL, это действительно приятно и удобно.
Ну, это не прямой ответ на ваш вопрос, но вы можете взглянуть на этот инструмент:
Кроме того, если вы хотите увидеть произведенный IL или аналогичный, есть инструмент, который подключается к Reflector , называемый Snippy , основанный на инструменте Snippy, который Джон упоминает в своем ответе. дальше вниз.
Все это очень приятно использовать.
Попробуйте scriptcs , он не интегрирован в VS IDE, но он позволяет вам набирать и запускать C # в окне скрипта без необходимости в компиляторе проекта и т. Д ...