Skip to content

Commit 063d080

Browse files
authored
[Group 5] Enable nullable annotations for Microsoft.Extensions.Configuration.Xml (#67178)
1 parent fc7da6e commit 063d080

7 files changed

+24
-22
lines changed

src/libraries/Microsoft.Extensions.Configuration.Xml/ref/Microsoft.Extensions.Configuration.Xml.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ namespace Microsoft.Extensions.Configuration
88
{
99
public static partial class XmlConfigurationExtensions
1010
{
11-
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider provider, string path, bool optional, bool reloadOnChange) { throw null; }
12-
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action<Microsoft.Extensions.Configuration.Xml.XmlConfigurationSource> configureSource) { throw null; }
11+
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, Microsoft.Extensions.FileProviders.IFileProvider? provider, string path, bool optional, bool reloadOnChange) { throw null; }
12+
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, System.Action<Microsoft.Extensions.Configuration.Xml.XmlConfigurationSource>? configureSource) { throw null; }
1313
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path) { throw null; }
1414
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional) { throw null; }
1515
public static Microsoft.Extensions.Configuration.IConfigurationBuilder AddXmlFile(this Microsoft.Extensions.Configuration.IConfigurationBuilder builder, string path, bool optional, bool reloadOnChange) { throw null; }
@@ -32,15 +32,15 @@ public partial class XmlDocumentDecryptor
3232
{
3333
public static readonly Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor Instance;
3434
protected XmlDocumentDecryptor() { }
35-
public System.Xml.XmlReader CreateDecryptingXmlReader(System.IO.Stream input, System.Xml.XmlReaderSettings settings) { throw null; }
35+
public System.Xml.XmlReader CreateDecryptingXmlReader(System.IO.Stream input, System.Xml.XmlReaderSettings? settings) { throw null; }
3636
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
3737
protected virtual System.Xml.XmlReader DecryptDocumentAndCreateXmlReader(System.Xml.XmlDocument document) { throw null; }
3838
}
3939
public partial class XmlStreamConfigurationProvider : Microsoft.Extensions.Configuration.StreamConfigurationProvider
4040
{
4141
public XmlStreamConfigurationProvider(Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationSource source) : base (default(Microsoft.Extensions.Configuration.StreamConfigurationSource)) { }
4242
public override void Load(System.IO.Stream stream) { }
43-
public static System.Collections.Generic.IDictionary<string, string> Read(System.IO.Stream stream, Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor decryptor) { throw null; }
43+
public static System.Collections.Generic.IDictionary<string, string?> Read(System.IO.Stream stream, Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor decryptor) { throw null; }
4444
}
4545
public partial class XmlStreamConfigurationSource : Microsoft.Extensions.Configuration.StreamConfigurationSource
4646
{

src/libraries/Microsoft.Extensions.Configuration.Xml/ref/Microsoft.Extensions.Configuration.Xml.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFrameworks>$(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum)</TargetFrameworks>
4+
<Nullable>enable</Nullable>
45
</PropertyGroup>
56

67
<ItemGroup>

src/libraries/Microsoft.Extensions.Configuration.Xml/src/Microsoft.Extensions.Configuration.Xml.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFrameworks>$(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum)</TargetFrameworks>
5+
<Nullable>enable</Nullable>
56
<EnableDefaultItems>true</EnableDefaultItems>
67
<!-- Use targeting pack references instead of granular ones in the project file. -->
78
<DisableImplicitAssemblyReferences>false</DisableImplicitAssemblyReferences>

src/libraries/Microsoft.Extensions.Configuration.Xml/src/XmlConfigurationElement.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ internal sealed class XmlConfigurationElement
1010
{
1111
public string ElementName { get; }
1212

13-
public string Name { get; }
13+
public string? Name { get; }
1414

1515
/// <summary>
1616
/// A composition of ElementName and Name, that serves as the basis for detecting siblings
@@ -20,18 +20,18 @@ internal sealed class XmlConfigurationElement
2020
/// <summary>
2121
/// The children of this element
2222
/// </summary>
23-
public IDictionary<string, List<XmlConfigurationElement>> ChildrenBySiblingName { get; set; }
23+
public IDictionary<string, List<XmlConfigurationElement>>? ChildrenBySiblingName { get; set; }
2424

2525
/// <summary>
2626
/// Performance optimization: do not initialize a dictionary and a list for elements with a single child
2727
/// </summary>
28-
public XmlConfigurationElement SingleChild { get; set; }
28+
public XmlConfigurationElement? SingleChild { get; set; }
2929

30-
public XmlConfigurationElementTextContent TextContent { get; set; }
30+
public XmlConfigurationElementTextContent? TextContent { get; set; }
3131

32-
public List<XmlConfigurationElementAttributeValue> Attributes { get; set; }
32+
public List<XmlConfigurationElementAttributeValue>? Attributes { get; set; }
3333

34-
public XmlConfigurationElement(string elementName!!, string name)
34+
public XmlConfigurationElement(string elementName!!, string? name)
3535
{
3636
ElementName = elementName;
3737
Name = name;

src/libraries/Microsoft.Extensions.Configuration.Xml/src/XmlConfigurationExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public static IConfigurationBuilder AddXmlFile(this IConfigurationBuilder builde
6262
/// <param name="optional">Whether the file is optional.</param>
6363
/// <param name="reloadOnChange">Whether the configuration should be reloaded if the file changes.</param>
6464
/// <returns>The <see cref="IConfigurationBuilder"/>.</returns>
65-
public static IConfigurationBuilder AddXmlFile(this IConfigurationBuilder builder!!, IFileProvider provider, string path, bool optional, bool reloadOnChange)
65+
public static IConfigurationBuilder AddXmlFile(this IConfigurationBuilder builder!!, IFileProvider? provider, string path, bool optional, bool reloadOnChange)
6666
{
6767
if (string.IsNullOrEmpty(path))
6868
{
@@ -85,7 +85,7 @@ public static IConfigurationBuilder AddXmlFile(this IConfigurationBuilder builde
8585
/// <param name="builder">The <see cref="IConfigurationBuilder"/> to add to.</param>
8686
/// <param name="configureSource">Configures the source.</param>
8787
/// <returns>The <see cref="IConfigurationBuilder"/>.</returns>
88-
public static IConfigurationBuilder AddXmlFile(this IConfigurationBuilder builder, Action<XmlConfigurationSource> configureSource)
88+
public static IConfigurationBuilder AddXmlFile(this IConfigurationBuilder builder, Action<XmlConfigurationSource>? configureSource)
8989
=> builder.Add(configureSource);
9090

9191
/// <summary>

src/libraries/Microsoft.Extensions.Configuration.Xml/src/XmlDocumentDecryptor.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class XmlDocumentDecryptor
1919
/// </summary>
2020
public static readonly XmlDocumentDecryptor Instance = new XmlDocumentDecryptor();
2121

22-
private readonly Func<XmlDocument, EncryptedXml> _encryptedXmlFactory;
22+
private readonly Func<XmlDocument, EncryptedXml>? _encryptedXmlFactory;
2323

2424
/// <summary>
2525
/// Initializes a XmlDocumentDecryptor.
@@ -50,7 +50,7 @@ private static bool ContainsEncryptedData(XmlDocument document)
5050
/// <summary>
5151
/// Returns an XmlReader that decrypts data transparently.
5252
/// </summary>
53-
public XmlReader CreateDecryptingXmlReader(Stream input, XmlReaderSettings settings)
53+
public XmlReader CreateDecryptingXmlReader(Stream input, XmlReaderSettings? settings)
5454
{
5555
// XML-based configurations aren't really all that big, so we can buffer
5656
// the whole thing in memory while we determine decryption operations.
@@ -98,7 +98,7 @@ protected virtual XmlReader DecryptDocumentAndCreateXmlReader(XmlDocument docume
9898
// Finally, return the new XmlReader from the updated XmlDocument.
9999
// Error messages based on this XmlReader won't show line numbers,
100100
// but that's fine since we transformed the document anyway.
101-
return document.CreateNavigator().ReadSubtree();
101+
return document.CreateNavigator()!.ReadSubtree();
102102
}
103103
}
104104
}

src/libraries/Microsoft.Extensions.Configuration.Xml/src/XmlStreamConfigurationProvider.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public XmlStreamConfigurationProvider(XmlStreamConfigurationSource source) : bas
2929
/// <param name="stream">The stream of XML data.</param>
3030
/// <param name="decryptor">The <see cref="XmlDocumentDecryptor"/> to use to decrypt.</param>
3131
/// <returns>The <see cref="IDictionary{String, String}"/> which was read from the stream.</returns>
32-
public static IDictionary<string, string> Read(Stream stream, XmlDocumentDecryptor decryptor)
32+
public static IDictionary<string, string?> Read(Stream stream, XmlDocumentDecryptor decryptor)
3333
{
3434
var readerSettings = new XmlReaderSettings()
3535
{
@@ -39,7 +39,7 @@ public static IDictionary<string, string> Read(Stream stream, XmlDocumentDecrypt
3939
IgnoreWhitespace = true
4040
};
4141

42-
XmlConfigurationElement root = null;
42+
XmlConfigurationElement? root = null;
4343

4444
using (XmlReader reader = decryptor.CreateDecryptingXmlReader(stream, readerSettings))
4545
{
@@ -211,7 +211,7 @@ private static void ReadAttributes(XmlReader reader, XmlConfigurationElement ele
211211
throw new FormatException(SR.Format(SR.Error_NamespaceIsNotSupported, GetLineInfo(reader)));
212212
}
213213

214-
element.Attributes.Add(new XmlConfigurationElementAttributeValue(reader.LocalName, reader.Value, lineNumber, linePosition));
214+
element.Attributes!.Add(new XmlConfigurationElementAttributeValue(reader.LocalName, reader.Value, lineNumber, linePosition));
215215
}
216216

217217
// Go back to the element containing the attributes we just processed
@@ -221,9 +221,9 @@ private static void ReadAttributes(XmlReader reader, XmlConfigurationElement ele
221221
// The special attribute "Name" only contributes to prefix
222222
// This method retrieves the Name of the element, if the attribute is present
223223
// Unfortunately XmlReader.GetAttribute cannot be used, as it does not support looking for attributes in a case insensitive manner
224-
private static string GetName(XmlReader reader)
224+
private static string? GetName(XmlReader reader)
225225
{
226-
string name = null;
226+
string? name = null;
227227

228228
while (reader.MoveToNextAttribute())
229229
{
@@ -245,9 +245,9 @@ private static string GetName(XmlReader reader)
245245
return name;
246246
}
247247

248-
private static IDictionary<string, string> ProvideConfiguration(XmlConfigurationElement root)
248+
private static IDictionary<string, string?> ProvideConfiguration(XmlConfigurationElement? root)
249249
{
250-
var configuration = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
250+
Dictionary<string, string?> configuration = new(StringComparer.OrdinalIgnoreCase);
251251

252252
if (root == null)
253253
{

0 commit comments

Comments
 (0)