Skip to content

Commit 8227a91

Browse files
committed
fix obsolete code, clean up warning
1 parent 27af755 commit 8227a91

31 files changed

Lines changed: 140 additions & 156 deletions

src/FluentRest/ContentSerializer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// Ignore Spelling: Serializer
2+
13
namespace FluentRest;
24

35
/// <summary>

src/FluentRest/DictionaryExtensions.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
using System;
2-
using System.Collections.Generic;
3-
41
namespace FluentRest;
52

63
/// <summary>

src/FluentRest/FluentClient.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
using System.Net.Http;
1+
// Ignore Spelling: Serializer
32

43
namespace FluentRest;
54

src/FluentRest/FluentClientExtensions.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
using System;
2-
using System.Net.Http;
3-
using System.Threading.Tasks;
4-
51
namespace FluentRest;
62

73
/// <summary>

src/FluentRest/FluentDispatcher.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Net.Http;
51
using System.Net.Http.Headers;
62
using System.Text;
7-
using System.Threading.Tasks;
83

94
namespace FluentRest;
105

src/FluentRest/FluentProperties.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System;
2-
31
namespace FluentRest;
42

53
/// <summary>

src/FluentRest/FormBuilder.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
using System;
2-
using System.Net.Http;
3-
41
namespace FluentRest;
52

63
/// <summary>

src/FluentRest/HeaderBuilder.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System;
2-
using System.Net.Http;
31
using System.Net.Http.Headers;
42

53
namespace FluentRest;

src/FluentRest/HttpClientExtensions.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
using System;
2-
using System.Net.Http;
3-
using System.Threading.Tasks;
4-
51
namespace FluentRest;
62

73
/// <summary>

src/FluentRest/HttpMessageExtensions.cs

Lines changed: 64 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Globalization;
4-
using System.Net.Http;
5-
using System.Threading;
6-
using System.Threading.Tasks;
7-
using System.Xml.Linq;
1+
// Ignore Spelling: Serializer Deserialize
82

93
namespace FluentRest;
104

@@ -13,6 +7,49 @@ namespace FluentRest;
137
/// </summary>
148
public static class HttpMessageExtensions
159
{
10+
public static TValue GetOrAddOption<TValue>(this HttpRequestMessage requestMessage, string key, Func<string, TValue> valueFactory)
11+
{
12+
#if NET5_0_OR_GREATER
13+
var optionKey = new HttpRequestOptionsKey<TValue>(key);
14+
if (requestMessage.Options.TryGetValue(optionKey, out var value))
15+
return value;
16+
17+
value = valueFactory(key);
18+
requestMessage.Options.Set(optionKey, value);
19+
return value;
20+
#else
21+
if (requestMessage.Properties.TryGetValue(key, out var propertyValue))
22+
return (TValue)propertyValue;
23+
24+
propertyValue = valueFactory(key);
25+
requestMessage.Properties.Add(key, propertyValue);
26+
27+
return (TValue)propertyValue;
28+
#endif
29+
}
30+
31+
public static bool TryGetOption<TValue>(this HttpRequestMessage requestMessage, string key, out TValue value)
32+
{
33+
#if NET5_0_OR_GREATER
34+
var optionKey = new HttpRequestOptionsKey<TValue>(key);
35+
return requestMessage.Options.TryGetValue(optionKey, out value);
36+
#else
37+
var found = requestMessage.Properties.TryGetValue(key, out var propertyValue);
38+
value = found ? (TValue)propertyValue : default;
39+
return found;
40+
#endif
41+
}
42+
43+
public static void SetOption<TValue>(this HttpRequestMessage requestMessage, string key, TValue value)
44+
{
45+
#if NET5_0_OR_GREATER
46+
var optionKey = new HttpRequestOptionsKey<TValue>(key);
47+
requestMessage.Options.Set(optionKey, value);
48+
#else
49+
requestMessage.Properties[key] = value;
50+
#endif
51+
}
52+
1653
/// <summary>
1754
/// Gets the <see cref="UrlBuilder"/> from the specified <paramref name="requestMessage" /> properties dictionary.
1855
/// </summary>
@@ -26,13 +63,13 @@ public static UrlBuilder GetUrlBuilder(this HttpRequestMessage requestMessage)
2663
if (requestMessage == null)
2764
throw new ArgumentNullException(nameof(requestMessage));
2865

29-
var propertyValue = requestMessage.Properties.GetOrAdd(FluentProperties.RequestUrlBuilder, k =>
66+
var propertyValue = requestMessage.GetOrAddOption(FluentProperties.RequestUrlBuilder, k =>
3067
requestMessage.RequestUri == null
3168
? new UrlBuilder()
3269
: new UrlBuilder(requestMessage.RequestUri)
3370
);
3471

35-
return propertyValue as UrlBuilder;
72+
return propertyValue;
3673
}
3774

3875
/// <summary>
@@ -46,7 +83,7 @@ public static void SetUrlBuilder(this HttpRequestMessage requestMessage, UrlBuil
4683
if (requestMessage == null)
4784
throw new ArgumentNullException(nameof(requestMessage));
4885

49-
requestMessage.Properties[FluentProperties.RequestUrlBuilder] = urlBuilder;
86+
requestMessage.SetOption(FluentProperties.RequestUrlBuilder, urlBuilder);
5087
}
5188

5289

@@ -63,7 +100,7 @@ public static object GetContentData(this HttpRequestMessage requestMessage)
63100
if (requestMessage == null)
64101
throw new ArgumentNullException(nameof(requestMessage));
65102

66-
requestMessage.Properties.TryGetValue(FluentProperties.RequestContentData, out var propertyValue);
103+
requestMessage.TryGetOption<object>(FluentProperties.RequestContentData, out var propertyValue);
67104
return propertyValue;
68105
}
69106

@@ -78,7 +115,7 @@ public static void SetContentData(this HttpRequestMessage requestMessage, object
78115
if (requestMessage == null)
79116
throw new ArgumentNullException(nameof(requestMessage));
80117

81-
requestMessage.Properties[FluentProperties.RequestContentData] = contentData;
118+
requestMessage.SetOption(FluentProperties.RequestContentData, contentData);
82119
}
83120

84121

@@ -95,8 +132,8 @@ public static Dictionary<string, ICollection<string>> GetFormData(this HttpReque
95132
if (requestMessage == null)
96133
throw new ArgumentNullException(nameof(requestMessage));
97134

98-
var propertyValue = requestMessage.Properties.GetOrAdd(FluentProperties.RequestFormData, k => new Dictionary<string, ICollection<string>>());
99-
return propertyValue as Dictionary<string, ICollection<string>>;
135+
var propertyValue = requestMessage.GetOrAddOption(FluentProperties.RequestFormData, k => new Dictionary<string, ICollection<string>>());
136+
return propertyValue;
100137
}
101138

102139

@@ -113,8 +150,10 @@ public static HttpCompletionOption GetCompletionOption(this HttpRequestMessage r
113150
if (requestMessage == null)
114151
throw new ArgumentNullException(nameof(requestMessage));
115152

116-
requestMessage.Properties.TryGetValue(FluentProperties.HttpCompletionOption, out var propertyValue);
117-
return (HttpCompletionOption)(propertyValue ?? HttpCompletionOption.ResponseContentRead);
153+
if (requestMessage.TryGetOption<HttpCompletionOption>(FluentProperties.HttpCompletionOption, out var value))
154+
return value;
155+
156+
return HttpCompletionOption.ResponseContentRead;
118157
}
119158

120159
/// <summary>
@@ -128,7 +167,7 @@ public static void SetCompletionOption(this HttpRequestMessage requestMessage, H
128167
if (requestMessage == null)
129168
throw new ArgumentNullException(nameof(requestMessage));
130169

131-
requestMessage.Properties[FluentProperties.HttpCompletionOption] = completionOption;
170+
requestMessage.SetOption(FluentProperties.HttpCompletionOption, completionOption);
132171
}
133172

134173

@@ -145,8 +184,10 @@ public static CancellationToken GetCancellationToken(this HttpRequestMessage req
145184
if (requestMessage == null)
146185
throw new ArgumentNullException(nameof(requestMessage));
147186

148-
requestMessage.Properties.TryGetValue(FluentProperties.CancellationToken, out var propertyValue);
149-
return (CancellationToken)(propertyValue ?? CancellationToken.None);
187+
if (requestMessage.TryGetOption<CancellationToken>(FluentProperties.CancellationToken, out var propertyValue))
188+
return propertyValue;
189+
190+
return CancellationToken.None;
150191
}
151192

152193
/// <summary>
@@ -160,7 +201,7 @@ public static void SetCancellationToken(this HttpRequestMessage requestMessage,
160201
if (requestMessage == null)
161202
throw new ArgumentNullException(nameof(requestMessage));
162203

163-
requestMessage.Properties[FluentProperties.CancellationToken] = cancellationToken;
204+
requestMessage.SetOption(FluentProperties.CancellationToken, cancellationToken);
164205
}
165206

166207

@@ -177,8 +218,8 @@ public static IContentSerializer GetContentSerializer(this HttpRequestMessage re
177218
if (requestMessage == null)
178219
throw new ArgumentNullException(nameof(requestMessage));
179220

180-
var propertyValue = requestMessage.Properties.GetOrAdd(FluentProperties.ContentSerializer, k => ContentSerializer.Current);
181-
return propertyValue as IContentSerializer;
221+
var propertyValue = requestMessage.GetOrAddOption(FluentProperties.ContentSerializer, k => ContentSerializer.Current);
222+
return propertyValue;
182223
}
183224

184225
/// <summary>
@@ -192,7 +233,7 @@ public static void SetContentSerializer(this HttpRequestMessage requestMessage,
192233
if (requestMessage == null)
193234
throw new ArgumentNullException(nameof(requestMessage));
194235

195-
requestMessage.Properties[FluentProperties.ContentSerializer] = contentSerializer ?? ContentSerializer.Current;
236+
requestMessage.SetOption(FluentProperties.ContentSerializer, contentSerializer ?? ContentSerializer.Current);
196237
}
197238

198239

0 commit comments

Comments
 (0)