Skip to content

Commit 0297f46

Browse files
committed
использован общий интерфейс Потоков
1 parent 777fac1 commit 0297f46

2 files changed

Lines changed: 4 additions & 12 deletions

File tree

src/OneScript.StandardLibrary/Binary/FileStreamContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace OneScript.StandardLibrary.Binary
2222
/// Следует учитывать, что помимо буферизации существует кэширование чтения и записи файлов в операционной системе, на которое невозможно повлиять программно.
2323
/// </summary>
2424
[ContextClass("ФайловыйПоток", "FileStream")]
25-
public class FileStreamContext : AutoContext<FileStreamContext>, IStreamWrapper, IDisposable
25+
public class FileStreamContext : AutoContext<FileStreamContext>, IDisposable, IStreamWrapper
2626
{
2727

2828
private readonly FileStream _underlyingStream;

src/OneScript.StandardLibrary/Json/JSONReader.cs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -272,25 +272,17 @@ public void OpenFile(string JSONFileName, IValue encoding = null)
272272
/// Если перед вызовом данного метода уже производилось чтение JSON из другого файла, строки или потока,
273273
/// то чтение прекращается и объект инициализируется для чтения из указанного потока.
274274
/// </summary>
275-
/// <param name="stream">
275+
/// <param name="streamContext">
276276
/// Поток для чтения текста JSON.</param>
277277
/// <param name="encoding">
278278
/// Позволяет задать кодировку входного потока.</param>
279279
[ContextMethod("ОткрытьПоток", "OpenStream")]
280-
public void OpenStream(IValue streamContext, IValue encoding = null)
280+
public void OpenStream(IStreamWrapper streamContext, IValue encoding = null)
281281
{
282282
if (IsOpen())
283283
Close();
284-
285-
var stream = streamContext switch
286-
{
287-
GenericStream s => s.GetUnderlyingStream(),
288-
FileStreamContext s => s.GetUnderlyingStream(),
289-
MemoryStreamContext s => s.GetUnderlyingStream(),
290284

291-
_ => throw RuntimeException.InvalidNthArgumentType(1)
292-
};
293-
285+
var stream = streamContext.GetUnderlyingStream();
294286
var enc = encoding != null ? TextEncodingEnum.GetEncoding(encoding) : System.Text.Encoding.UTF8;
295287

296288
_reader = new JsonReaderInternal(new StreamReader(stream, enc))

0 commit comments

Comments
 (0)