Skip to content

Commit e540741

Browse files
committed
重写所有属性
1 parent c5e2324 commit e540741

File tree

1 file changed

+49
-24
lines changed

1 file changed

+49
-24
lines changed

WebApiClient/Parameterables/MulitpartFile.cs

Lines changed: 49 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ namespace WebApiClient.Parameterables
1515
[DebuggerTypeProxy(typeof(DebugView))]
1616
public class MulitpartFile : Stream, IApiParameterable
1717
{
18-
/// <summary>
19-
/// 数据流
20-
/// </summary>
21-
private readonly Stream innerStream;
22-
2318
/// <summary>
2419
/// 指示是否可以dispose传入的stream
2520
/// </summary>
@@ -35,6 +30,10 @@ public class MulitpartFile : Stream, IApiParameterable
3530
/// </summary>
3631
private long currentBytes = 0L;
3732

33+
/// <summary>
34+
/// 获取或设置包装的内部数据流
35+
/// </summary>
36+
protected Stream InnerStream { get; }
3837

3938
/// <summary>
4039
/// 上传进度变化事件
@@ -64,40 +63,66 @@ public virtual string EncodedFileName
6463
/// </summary>
6564
public override bool CanRead
6665
{
67-
get => this.innerStream.CanRead;
66+
get => this.InnerStream.CanRead;
6867
}
6968

7069
/// <summary>
7170
/// 返回是否可探索位置
7271
/// </summary>
7372
public override bool CanSeek
7473
{
75-
get => this.innerStream.CanSeek;
74+
get => this.InnerStream.CanSeek;
7675
}
7776

7877
/// <summary>
7978
/// 返回是否可写
8079
/// </summary>
8180
public override bool CanWrite
8281
{
83-
get => this.innerStream.CanWrite;
82+
get => this.InnerStream.CanWrite;
8483
}
8584

8685
/// <summary>
8786
/// 返回数据流长度
8887
/// </summary>
8988
public override long Length
9089
{
91-
get => this.innerStream.Length;
90+
get => this.InnerStream.Length;
9291
}
9392

9493
/// <summary>
95-
/// 返回数据流当前的指针位置
94+
/// 获取或设置数据流当前的指针位置
9695
/// </summary>
9796
public override long Position
9897
{
99-
get => this.innerStream.Position;
100-
set => this.innerStream.Position = value;
98+
get => this.InnerStream.Position;
99+
set => this.InnerStream.Position = value;
100+
}
101+
102+
/// <summary>
103+
/// 获取或设置读取的超时时间
104+
/// </summary>
105+
public override int ReadTimeout
106+
{
107+
get => this.InnerStream.ReadTimeout;
108+
set => this.InnerStream.ReadTimeout = value;
109+
}
110+
111+
/// <summary>
112+
/// 获取或设置写入的超时时间
113+
/// </summary>
114+
public override int WriteTimeout
115+
{
116+
get => this.InnerStream.WriteTimeout;
117+
set => this.InnerStream.WriteTimeout = value;
118+
}
119+
120+
/// <summary>
121+
/// 获取一个值,该值确定当前流是否可以超时
122+
/// </summary>
123+
public override bool CanTimeout
124+
{
125+
get => this.InnerStream.CanTimeout;
101126
}
102127

103128
/// <summary>
@@ -143,7 +168,7 @@ public MulitpartFile(Stream stream, string fileName)
143168
/// <exception cref="ArgumentNullException"></exception>
144169
public MulitpartFile(Stream stream, string fileName, bool disposeStream)
145170
{
146-
this.innerStream = stream ?? throw new ArgumentNullException(nameof(stream));
171+
this.InnerStream = stream ?? throw new ArgumentNullException(nameof(stream));
147172
this.disposeInnerStream = disposeStream;
148173
this.FileName = fileName;
149174

@@ -181,7 +206,7 @@ protected virtual async Task BeforeRequestAsync(ApiActionContext context, ApiPar
181206
/// </summary>
182207
public sealed override void Flush()
183208
{
184-
this.innerStream.Flush();
209+
this.InnerStream.Flush();
185210
}
186211

187212
/// <summary>
@@ -191,7 +216,7 @@ public sealed override void Flush()
191216
/// <returns></returns>
192217
public sealed override Task FlushAsync(CancellationToken cancellationToken)
193218
{
194-
return this.innerStream.FlushAsync(cancellationToken);
219+
return this.InnerStream.FlushAsync(cancellationToken);
195220
}
196221

197222
/// <summary>
@@ -202,7 +227,7 @@ public sealed override Task FlushAsync(CancellationToken cancellationToken)
202227
/// <returns></returns>
203228
public sealed override long Seek(long offset, SeekOrigin origin)
204229
{
205-
return this.innerStream.Seek(offset, origin);
230+
return this.InnerStream.Seek(offset, origin);
206231
}
207232

208233
/// <summary>
@@ -211,7 +236,7 @@ public sealed override long Seek(long offset, SeekOrigin origin)
211236
/// <param name="value">长度值</param>
212237
public sealed override void SetLength(long value)
213238
{
214-
this.innerStream.SetLength(value);
239+
this.InnerStream.SetLength(value);
215240
}
216241

217242
#if !NETSTANDARD1_3
@@ -226,7 +251,7 @@ public sealed override void SetLength(long value)
226251
/// <returns></returns>
227252
public sealed override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
228253
{
229-
return this.innerStream.BeginRead(buffer, offset, count, callback, state);
254+
return this.InnerStream.BeginRead(buffer, offset, count, callback, state);
230255
}
231256

232257
/// <summary>
@@ -236,7 +261,7 @@ public sealed override IAsyncResult BeginRead(byte[] buffer, int offset, int cou
236261
/// <returns></returns>
237262
public sealed override int EndRead(IAsyncResult asyncResult)
238263
{
239-
var length = this.innerStream.EndRead(asyncResult);
264+
var length = this.InnerStream.EndRead(asyncResult);
240265
this.OnRead(length);
241266
return length;
242267
}
@@ -246,7 +271,7 @@ public sealed override int EndRead(IAsyncResult asyncResult)
246271
/// </summary>
247272
public sealed override void Close()
248273
{
249-
this.innerStream.Close();
274+
this.InnerStream.Close();
250275
}
251276
#endif
252277

@@ -259,7 +284,7 @@ public sealed override void Close()
259284
/// <returns></returns>
260285
public sealed override int Read(byte[] buffer, int offset, int count)
261286
{
262-
var length = this.innerStream.Read(buffer, offset, count);
287+
var length = this.InnerStream.Read(buffer, offset, count);
263288
this.OnRead(length);
264289
return length;
265290
}
@@ -274,7 +299,7 @@ public sealed override int Read(byte[] buffer, int offset, int count)
274299
/// <returns></returns>
275300
public sealed override async Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
276301
{
277-
var length = await this.innerStream.ReadAsync(buffer, offset, count, cancellationToken).ConfigureAwait(false);
302+
var length = await this.InnerStream.ReadAsync(buffer, offset, count, cancellationToken).ConfigureAwait(false);
278303
this.OnRead(length);
279304
return length;
280305
}
@@ -309,7 +334,7 @@ protected virtual void OnUploadProgressChanged(ProgressEventArgs e)
309334
/// <param name="count">写入的长度</param>
310335
public override void Write(byte[] buffer, int offset, int count)
311336
{
312-
this.innerStream.Write(buffer, offset, count);
337+
this.InnerStream.Write(buffer, offset, count);
313338
}
314339

315340
/// <summary>
@@ -320,7 +345,7 @@ protected override void Dispose(bool disposing)
320345
{
321346
if (disposing && this.disposeInnerStream)
322347
{
323-
this.innerStream.Dispose();
348+
this.InnerStream.Dispose();
324349
}
325350
base.Dispose(disposing);
326351
}

0 commit comments

Comments
 (0)