for (int i = 0; i < count; i++)
{
SourceText s = await proj.FindDocument(l[i]).GetTextAsync().ConfigureAwait(false);
- results.Add(Replace(s.ToString(), "\r\n", "\n"));
+ results.Add(ReplaceLineEndings(s.ToString()));
}
}
else
for (int i = 0; i < count; i++)
{
SourceText s = await proj.FindDocument($"src-{i}.cs").GetTextAsync().ConfigureAwait(false);
- results.Add(Replace(s.ToString(), "\r\n", "\n"));
+ results.Add(ReplaceLineEndings(s.ToString()));
}
}
if (extraFile != null)
{
SourceText s = await proj.FindDocument(extraFile).GetTextAsync().ConfigureAwait(false);
- results.Add(Replace(s.ToString(), "\r\n", "\n"));
+ results.Add(ReplaceLineEndings(s.ToString()));
}
return results;
return document.WithText(SourceText.From(newText.ToString(), newText.Encoding, newText.ChecksumAlgorithm));
}
- private static string Replace(string text, string oldText, string newText) =>
- text.Replace(
- oldText, newText
+ private static string ReplaceLineEndings(string text) =>
#if NETCOREAPP
- , StringComparison.Ordinal
+ text.ReplaceLineEndings("\n");
+#else
+ text.Replace("\r\n", "\n");
#endif
- );
}
}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal abstract record CollectionSpec : TypeSpec
- {
- public CollectionSpec(ITypeSymbol type) : base(type)
- {
- IsReadOnly = type.IsReadOnly;
- IsInterface = type is INamedTypeSymbol { TypeKind: TypeKind.Interface };
- }
-
- public required TypeSpec ElementType { get; init; }
-
- public bool IsReadOnly { get; }
-
- public bool IsInterface { get; }
-
- public CollectionSpec? ConcreteType { get; init; }
- }
-
- internal sealed record ArraySpec : CollectionSpec
- {
- public ArraySpec(ITypeSymbol type) : base(type) { }
-
- public override TypeSpecKind SpecKind => TypeSpecKind.Array;
- }
-
- internal sealed record EnumerableSpec : CollectionSpec
- {
- public EnumerableSpec(ITypeSymbol type) : base(type) { }
-
- public override TypeSpecKind SpecKind => TypeSpecKind.Enumerable;
- }
-
- internal sealed record DictionarySpec : CollectionSpec
- {
- public DictionarySpec(INamedTypeSymbol type) : base(type) { }
-
- public override TypeSpecKind SpecKind => TypeSpecKind.Dictionary;
-
- public required ParsableFromStringTypeSpec KeyType { get; init; }
- }
-}
_writer.WriteBlankLine();
}
- Emit_NotSupportedException_UnableToBindType(NotSupportedReason.TypeNotDetectedAsInput);
+ Emit_NotSupportedException_TypeNotDetectedAsInput();
_writer.WriteBlockEnd();
}
_writer.WriteBlankLine();
}
- Emit_NotSupportedException_UnableToBindType(NotSupportedReason.TypeNotDetectedAsInput);
+ Emit_NotSupportedException_TypeNotDetectedAsInput();
_writer.WriteBlockEnd();
}
""");
}
- private void Emit_NotSupportedException_UnableToBindType(string reason, string typeDisplayString = "{typeof(T)}") =>
- _writer.WriteLine(@$"throw new global::System.NotSupportedException($""{string.Format(ExceptionMessages.TypeNotSupported, typeDisplayString, reason)}"");");
+ private void Emit_NotSupportedException_TypeNotDetectedAsInput() =>
+ _writer.WriteLine(@$"throw new global::System.NotSupportedException($""{string.Format(ExceptionMessages.TypeNotDetectedAsInput, "{typeof(T)}")}"");");
private void EmitCheckForNullArgument_WithBlankLine_IfRequired(bool isValueType)
{
{
public sealed partial class ConfigurationBindingSourceGenerator
{
- private const string GeneratorProjectName = "Microsoft.Extensions.Configuration.Binder.SourceGeneration";
-
- private static DiagnosticDescriptor TypeNotSupported { get; } = new DiagnosticDescriptor(
- id: "SYSLIB1100",
- title: new LocalizableResourceString(nameof(SR.TypeNotSupportedTitle), SR.ResourceManager, typeof(FxResources.Microsoft.Extensions.Configuration.Binder.SourceGeneration.SR)),
- messageFormat: new LocalizableResourceString(nameof(SR.TypeNotSupportedMessageFormat), SR.ResourceManager, typeof(FxResources.Microsoft.Extensions.Configuration.Binder.SourceGeneration.SR)),
- category: GeneratorProjectName,
- defaultSeverity: DiagnosticSeverity.Warning,
- isEnabledByDefault: true);
+ private static DiagnosticDescriptor TypeNotSupported { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.TypeNotSupported));
+ private static DiagnosticDescriptor AbstractOrInterfaceNotSupported { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.AbstractOrInterfaceNotSupported));
+ private static DiagnosticDescriptor NeedPublicParameterlessConstructor { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.NeedPublicParameterlessConstructor));
+ private static DiagnosticDescriptor CollectionNotSupported { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.CollectionNotSupported));
+ private static DiagnosticDescriptor DictionaryKeyNotSupported { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.DictionaryKeyNotSupported));
+ private static DiagnosticDescriptor ElementTypeNotSupported { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.ElementTypeNotSupported));
+ private static DiagnosticDescriptor MultiDimArraysNotSupported { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.MultiDimArraysNotSupported));
+ private static DiagnosticDescriptor NullableUnderlyingTypeNotSupported { get; } = CreateTypeNotSupportedDescriptor(nameof(SR.NullableUnderlyingTypeNotSupported));
private static DiagnosticDescriptor PropertyNotSupported { get; } = new DiagnosticDescriptor(
id: "SYSLIB1101",
defaultSeverity: DiagnosticSeverity.Error,
isEnabledByDefault: true);
- private static class NotSupportedReason
- {
- public const string AbstractOrInterfaceNotSupported = "Abstract or interface types are not supported";
- public const string NeedPublicParameterlessConstructor = "Only objects with public parameterless ctors are supported";
- public const string CollectionNotSupported = "The collection type is not supported";
- public const string DictionaryKeyNotSupported = "The dictionary key type is not supported";
- public const string ElementTypeNotSupported = "The collection element type is not supported";
- public const string MultiDimArraysNotSupported = "Multidimensional arrays are not supported.";
- public const string NullableUnderlyingTypeNotSupported = "Nullable underlying type is not supported";
- public const string TypeNotDetectedAsInput = "Generator parser did not detect the type as input";
- public const string TypeNotSupported = "The type is not supported";
- }
+ private static DiagnosticDescriptor CreateTypeNotSupportedDescriptor(string nameofLocalizableMessageFormat) =>
+ new DiagnosticDescriptor(
+ id: "SYSLIB1100",
+ title: new LocalizableResourceString(nameof(SR.TypeNotSupportedTitle), SR.ResourceManager, typeof(FxResources.Microsoft.Extensions.Configuration.Binder.SourceGeneration.SR)),
+ messageFormat: new LocalizableResourceString(nameofLocalizableMessageFormat, SR.ResourceManager, typeof(FxResources.Microsoft.Extensions.Configuration.Binder.SourceGeneration.SR)),
+ category: GeneratorProjectName,
+ defaultSeverity: DiagnosticSeverity.Warning,
+ isEnabledByDefault: true);
private static class Identifier
{
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
-using System.Runtime.InteropServices.ComTypes;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Operations;
genericType.ConstructUnboundGenericType() is INamedTypeSymbol { } unboundGeneric &&
unboundGeneric.OriginalDefinition.SpecialType == SpecialType.System_Nullable_T)
{
- return TryGetTypeSpec(genericType.TypeArguments[0], NotSupportedReason.NullableUnderlyingTypeNotSupported, out TypeSpec? underlyingType)
+ return TryGetTypeSpec(genericType.TypeArguments[0], NullableUnderlyingTypeNotSupported, out TypeSpec? underlyingType)
? CacheSpec(new NullableSpec(type) { Location = location, UnderlyingType = underlyingType })
: null;
}
return CacheSpec(spec);
}
- ReportUnsupportedType(type, NotSupportedReason.TypeNotSupported, location);
+ ReportUnsupportedType(type, TypeNotSupported, location);
return null;
T CacheSpec<T>(T? s) where T : TypeSpec
}
}
- private bool TryGetTypeSpec(ITypeSymbol type, string unsupportedReason, out TypeSpec? spec)
+ private bool TryGetTypeSpec(ITypeSymbol type, DiagnosticDescriptor descriptor, out TypeSpec? spec)
{
spec = GetOrCreateTypeSpec(type);
if (spec == null)
{
- ReportUnsupportedType(type, unsupportedReason);
+ ReportUnsupportedType(type, descriptor);
return false;
}
private ArraySpec? CreateArraySpec(IArrayTypeSymbol arrayType, Location? location)
{
- if (!TryGetTypeSpec(arrayType.ElementType, NotSupportedReason.ElementTypeNotSupported, out TypeSpec elementSpec))
+ if (!TryGetTypeSpec(arrayType.ElementType, ElementTypeNotSupported, out TypeSpec elementSpec))
{
return null;
}
if (arrayType.Rank > 1)
{
- ReportUnsupportedType(arrayType, NotSupportedReason.MultiDimArraysNotSupported, location);
+ ReportUnsupportedType(arrayType, MultiDimArraysNotSupported, location);
elementType = null;
return false;
}
private DictionarySpec CreateDictionarySpec(INamedTypeSymbol type, Location? location, ITypeSymbol keyType, ITypeSymbol elementType)
{
- if (!TryGetTypeSpec(keyType, NotSupportedReason.DictionaryKeyNotSupported, out TypeSpec keySpec) ||
- !TryGetTypeSpec(elementType, NotSupportedReason.ElementTypeNotSupported, out TypeSpec elementSpec))
+ if (!TryGetTypeSpec(keyType, DictionaryKeyNotSupported, out TypeSpec keySpec) ||
+ !TryGetTypeSpec(elementType, ElementTypeNotSupported, out TypeSpec elementSpec))
{
return null;
}
if (keySpec.SpecKind != TypeSpecKind.ParsableFromString)
{
- ReportUnsupportedType(type, NotSupportedReason.DictionaryKeyNotSupported, location);
+ ReportUnsupportedType(type, DictionaryKeyNotSupported, location);
return null;
}
}
else if (!CanConstructObject(type, location) || !HasAddMethod(type, elementType, keyType))
{
- ReportUnsupportedType(type, NotSupportedReason.CollectionNotSupported, location);
+ ReportUnsupportedType(type, CollectionNotSupported, location);
return null;
}
private EnumerableSpec? CreateEnumerableSpec(INamedTypeSymbol type, Location? location, ITypeSymbol elementType)
{
- if (!TryGetTypeSpec(elementType, NotSupportedReason.ElementTypeNotSupported, out TypeSpec elementSpec))
+ if (!TryGetTypeSpec(elementType, ElementTypeNotSupported, out TypeSpec elementSpec))
{
return null;
}
}
else if (!CanConstructObject(type, location) || !HasAddMethod(type, elementType))
{
- ReportUnsupportedType(type, NotSupportedReason.CollectionNotSupported, location);
+ ReportUnsupportedType(type, CollectionNotSupported, location);
return null;
}
{
if (type.IsAbstract || type.TypeKind == TypeKind.Interface)
{
- ReportUnsupportedType(type, NotSupportedReason.AbstractOrInterfaceNotSupported, location);
+ ReportUnsupportedType(type, AbstractOrInterfaceNotSupported, location);
return false;
}
else if (!HasPublicParameterlessCtor(type))
{
- ReportUnsupportedType(type, NotSupportedReason.NeedPublicParameterlessConstructor, location);
+ ReportUnsupportedType(type, NeedPublicParameterlessConstructor, location);
return false;
}
private static bool IsEnum(ITypeSymbol type) => type is INamedTypeSymbol { EnumUnderlyingType: INamedTypeSymbol { } };
- private void ReportUnsupportedType(ITypeSymbol type, string reason, Location? location = null)
+ private void ReportUnsupportedType(ITypeSymbol type, DiagnosticDescriptor descriptor, Location? location = null)
{
if (!_unsupportedTypes.Contains(type))
{
_context.ReportDiagnostic(
- Diagnostic.Create(TypeNotSupported, location, new string[] { type.ToDisplayString(), reason }));
+ Diagnostic.Create(descriptor, location, new string[] { type.ToDisplayString() }));
_unsupportedTypes.Add(type);
}
}
[Generator]
public sealed partial class ConfigurationBindingSourceGenerator : IIncrementalGenerator
{
+ private const string GeneratorProjectName = "Microsoft.Extensions.Configuration.Binder.SourceGeneration";
+
public void Initialize(IncrementalGeneratorInitializationContext context)
{
IncrementalValueProvider<CompilationData?> compilationData =
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal sealed record ConfigurationSectionTypeSpec : TypeSpec
- {
- public ConfigurationSectionTypeSpec(ITypeSymbol type) : base(type) { }
- public override TypeSpecKind SpecKind => TypeSpecKind.IConfigurationSection;
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal enum ConstructionStrategy
- {
- NotApplicable = 0,
- ParameterlessConstructor = 1,
- }
-}
// Runtime exception messages; not localized so we keep them in source.
internal static class ExceptionMessages
{
- public const string TypeNotSupported = "Unable to bind to type '{0}': '{1}'";
+ public const string TypeNotDetectedAsInput = "Unable to bind to type '{0}': generator did not detect the type as input.";
public const string FailedBinding = "Failed to convert configuration value at '{0}' to type '{1}'.";
}
}
<Compile Include="$(CoreLibSharedDir)System\Collections\Generic\ValueListBuilder.cs" Link="Production\ValueListBuilder.cs" />
<Compile Include="$(CoreLibSharedDir)System\Collections\Generic\ValueListBuilder.Pop.cs" Link="Production\ValueListBuilder.Pop.cs" />
<Compile Include="$(CommonPath)\Roslyn\GetBestTypeByMetadataName.cs" Link="Common\Roslyn\GetBestTypeByMetadataName.cs" />
- <Compile Include="CollectionSpec.cs" />
<Compile Include="ConfigurationBindingSourceGenerator.cs" />
<Compile Include="ConfigurationBindingSourceGenerator.Emitter.cs" />
<Compile Include="ConfigurationBindingSourceGenerator.Helpers.cs" />
<Compile Include="ConfigurationBindingSourceGenerator.Parser.cs" />
- <Compile Include="ConstructionStrategy.cs" />
- <Compile Include="ConfigurationSectionTypeSpec.cs" />
<Compile Include="ExceptionMessages.cs" />
<Compile Include="MethodSpecifier.cs" />
- <Compile Include="NullableSpec.cs" />
- <Compile Include="ObjectSpec.cs" />
- <Compile Include="ParsableFromStringTypeSpec.cs" />
- <Compile Include="PopulationStrategy.cs" />
- <Compile Include="PropertySpec.cs" />
<Compile Include="SourceGenerationSpec.cs" />
<Compile Include="SourceWriter.cs" />
- <Compile Include="TypeSpecKind.cs" />
- <Compile Include="TypeSpec.cs" />
+ <Compile Include="TypeGraph\CollectionSpec.cs" />
+ <Compile Include="TypeGraph\ConstructionStrategy.cs" />
+ <Compile Include="TypeGraph\ConfigurationSectionTypeSpec.cs" />
+ <Compile Include="TypeGraph\NullableSpec.cs" />
+ <Compile Include="TypeGraph\ObjectSpec.cs" />
+ <Compile Include="TypeGraph\ParsableFromStringTypeSpec.cs" />
+ <Compile Include="TypeGraph\PropertySpec.cs" />
+ <Compile Include="TypeGraph\TypeSpecKind.cs" />
+ <Compile Include="TypeGraph\TypeSpec.cs" />
</ItemGroup>
</Project>
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal sealed record NullableSpec : TypeSpec
- {
- public NullableSpec(ITypeSymbol type) : base(type) { }
- public override TypeSpecKind SpecKind => TypeSpecKind.Nullable;
- public required TypeSpec UnderlyingType { get; init; }
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.Collections.Generic;
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal sealed record ObjectSpec : TypeSpec
- {
- public ObjectSpec(INamedTypeSymbol type) : base(type) { }
- public override TypeSpecKind SpecKind => TypeSpecKind.Object;
- public List<PropertySpec> Properties { get; } = new();
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.Diagnostics;
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal sealed record ParsableFromStringTypeSpec : TypeSpec
- {
- public ParsableFromStringTypeSpec(ITypeSymbol type) : base(type) { }
-
- public override TypeSpecKind SpecKind => TypeSpecKind.ParsableFromString;
-
- public required StringParsableTypeKind StringParsableTypeKind { get; init; }
-
- private string? _parseMethodName;
- public string ParseMethodName
- {
- get
- {
- Debug.Assert(StringParsableTypeKind is not StringParsableTypeKind.ConfigValue);
-
- _parseMethodName ??= StringParsableTypeKind is StringParsableTypeKind.ByteArray
- ? "ParseByteArray"
- // MinimalDisplayString.Length is certainly > 2.
- : $"Parse{(char.ToUpper(MinimalDisplayString[0]) + MinimalDisplayString.Substring(1)).Replace(".", "")}";
-
- return _parseMethodName;
- }
- }
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal enum PopulationStrategy
- {
- NotApplicable = 0,
- Indexer = 1,
- Add = 2,
- Push = 3,
- Enqueue = 4,
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using System.Linq;
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal sealed record PropertySpec
- {
- public PropertySpec(IPropertySymbol property)
- {
- Name = property.Name;
- IsStatic = property.IsStatic;
- CanGet = property.GetMethod is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, IsInitOnly: false };
- CanSet = property.SetMethod is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, IsInitOnly: false };
- }
-
- public string Name { get; }
- public bool IsStatic { get; }
- public bool CanGet { get; }
- public bool CanSet { get; }
- public required TypeSpec Type { get; init; }
- public required string ConfigurationKeyName { get; init; }
- }
-}
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
+ <data name="AbstractOrInterfaceNotSupported" xml:space="preserve">
+ <value>Abstract or interface types are not supported: '{0}'.</value>
+ </data>
+ <data name="CollectionNotSupported" xml:space="preserve">
+ <value>The collection type is not supported: '{0}'.</value>
+ </data>
+ <data name="DictionaryKeyNotSupported" xml:space="preserve">
+ <value>The dictionary key type is not supported: '{0}'.</value>
+ </data>
+ <data name="ElementTypeNotSupported" xml:space="preserve">
+ <value>The collection element type is not supported: '{0}'.</value>
+ </data>
<data name="Language VersionIsNotSupportedMessageFormat" xml:space="preserve">
<value>The project's language version has to be at least 'C# 11'.</value>
</data>
<data name="LanguageVersionIsNotSupportedTitle" xml:space="preserve">
<value>Language version is required to be at least C# 11</value>
</data>
+ <data name="MultiDimArraysNotSupported" xml:space="preserve">
+ <value>Multidimensional arrays are not supported: '{0}'.</value>
+ </data>
+ <data name="NeedPublicParameterlessConstructor" xml:space="preserve">
+ <value>Only objects with public parameterless constructors are supported: '{0}'.</value>
+ </data>
+ <data name="NullableUnderlyingTypeNotSupported" xml:space="preserve">
+ <value>Nullable underlying type is not supported: '{0}'.</value>
+ </data>
<data name="PropertyNotSupportedMessageFormat" xml:space="preserve">
<value>Property '{0}' on type '{1}' is not supported.</value>
</data>
<data name="PropertyNotSupportedTitle" xml:space="preserve">
<value>Did not generate binding logic for a property on a type</value>
</data>
- <data name="TypeNotSupportedMessageFormat" xml:space="preserve">
- <value>Type '{0}' is not supported: {1}.</value>
+ <data name="TypeNotSupported" xml:space="preserve">
+ <value>The type is not supported: '{0}'.</value>
</data>
<data name="TypeNotSupportedTitle" xml:space="preserve">
<value>Did not generate binding logic for a type</value>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="cs" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">Jazyková verze projektu musí být alespoň C# 11</target>
<target state="translated">Verze jazyka musí být alespoň C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">Vlastnost „{0}“ u typu „{1}“ se nepodporuje.</target>
<target state="translated">Negenerovala se logika vazby pro vlastnost typu</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">Typ „{0}“ se nepodporuje: {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="de" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">Die Sprachversion des Projekts muss mindestens „C# 11“ sein</target>
<target state="translated">Die Sprachversion muss mindestens C# 11 sein</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">Die Eigenschaft „{0}“ für den Typ „{1}“ wird nicht unterstützt.</target>
<target state="translated">Für eine Eigenschaft eines Typs wurde keine Bindungslogik generiert</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">Der Typ „{0}“ wird nicht unterstützt: {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="es" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">La versión del lenguaje del proyecto debe ser al menos "C# 11".</target>
<target state="translated">La versión del lenguaje debe ser al menos C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">La propiedad '{0}' en el tipo '{1}' no se admite.</target>
<target state="translated">No se ha generado la lógica de enlace para una propiedad en un tipo.</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">El tipo '{0}' no se admite: {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="fr" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">La version de langage du projet doit être au moins « C# 11 ».</target>
<target state="translated">La version du langage doit être au moins C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">La propriété '{0}' sur le type '{1}' n’est pas prise en charge.</target>
<target state="translated">La logique de liaison n’a pas été généré pour une propriété sur un type</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">Le type '{0}' n’est pas pris en charge : {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="it" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">La versione del linguaggio del progetto deve essere almeno 'C# 11'.</target>
<target state="translated">La versione del linguaggio deve essere almeno C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">La proprietà '{0}' nel tipo '{1}' non è supportata.</target>
<target state="translated">Non è stata generata la logica di binding per una proprietà in un tipo</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">Il tipo '{0}' non è supportato: {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="ja" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">プロジェクトの言語バージョンは少なくとも 'C# 11' である必要があります。</target>
<target state="translated">言語バージョンは少なくとも C# 11 である必要があります</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">型 '{1}' のプロパティ '{0}' はサポートされていません。</target>
<target state="translated">型のプロパティのバインディング ロジックを生成しませんでした</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">型 '{0}' はサポートされていません: {1}。</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="ko" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">프로젝트의 언어 버전은 'C# 11' 이상이어야 합니다.</target>
<target state="translated">언어 버전은 C# 11 이상이어야 합니다.</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">'{1}' 형식의 속성 '{0}'은(는) 지원되지 않습니다.</target>
<target state="translated">형식의 속성에 대한 바인딩 논리를 생성하지 않았습니다.</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">'{0}' 형식은 지원되지 않습니다. {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="pl" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">Wersja językowa projektu musi mieć wartość co najmniej „C# 11”.</target>
<target state="translated">Wymagana jest wersja językowa co najmniej C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">Właściwość „{0}” w typie „{1}” nie jest obsługiwana.</target>
<target state="translated">Nie wygenerowano logiki powiązania dla właściwości w typie</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">Typ „{0}” nie jest obsługiwany: {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="pt-BR" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">A versão do idioma do projeto deve ser no mínimo 'C# 11'.</target>
<target state="translated">A versão do idioma deve ser pelo menos C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">Não há suporte para a propriedade '{0}' no tipo '{1}'.</target>
<target state="translated">Não gerou lógica de ligação para uma propriedade em um tipo</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">Não há suporte para o tipo '{0}': {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="ru" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">Версия языка проекта должна быть не ниже "C# 11".</target>
<target state="translated">Версия языка должна быть не ниже C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">Свойство "{0}" типа "{1}" не поддерживается.</target>
<target state="translated">Не создана логика привязки для свойства типа</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">Тип "{0}" не поддерживается: {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="tr" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">Projenin dil sürümü en az 'C# 11' olmalıdır.</target>
<target state="translated">Dil sürümünün en az C# 11 olması gerekir</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">'{1}' türündeki '{0}' özelliği desteklenmiyor.</target>
<target state="translated">Türdeki bir özellik için bağlama mantığı oluşturulmadı</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">'{0}' türü desteklenmiyor: {1}.</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="zh-Hans" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">项目的语言版本必须至少为 "C# 11"。</target>
<target state="translated">语言版本必须至少为 C# 11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">类型“{1}”中的属性“{0}”不受支持。</target>
<target state="translated">没有为类型中的属性生成绑定逻辑</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">类型“{0}”不受支持:{1}。</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
<file datatype="xml" source-language="en" target-language="zh-Hant" original="../Strings.resx">
<body>
+ <trans-unit id="AbstractOrInterfaceNotSupported">
+ <source>Abstract or interface types are not supported: '{0}'.</source>
+ <target state="new">Abstract or interface types are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="CollectionNotSupported">
+ <source>The collection type is not supported: '{0}'.</source>
+ <target state="new">The collection type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="DictionaryKeyNotSupported">
+ <source>The dictionary key type is not supported: '{0}'.</source>
+ <target state="new">The dictionary key type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="ElementTypeNotSupported">
+ <source>The collection element type is not supported: '{0}'.</source>
+ <target state="new">The collection element type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="Language VersionIsNotSupportedMessageFormat">
<source>The project's language version has to be at least 'C# 11'.</source>
<target state="translated">專案的語言版本必須至少為 'C# 11'。</target>
<target state="translated">語言版本要求至少為 C#11</target>
<note />
</trans-unit>
+ <trans-unit id="MultiDimArraysNotSupported">
+ <source>Multidimensional arrays are not supported: '{0}'.</source>
+ <target state="new">Multidimensional arrays are not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NeedPublicParameterlessConstructor">
+ <source>Only objects with public parameterless constructors are supported: '{0}'.</source>
+ <target state="new">Only objects with public parameterless constructors are supported: '{0}'.</target>
+ <note />
+ </trans-unit>
+ <trans-unit id="NullableUnderlyingTypeNotSupported">
+ <source>Nullable underlying type is not supported: '{0}'.</source>
+ <target state="new">Nullable underlying type is not supported: '{0}'.</target>
+ <note />
+ </trans-unit>
<trans-unit id="PropertyNotSupportedMessageFormat">
<source>Property '{0}' on type '{1}' is not supported.</source>
<target state="translated">不支援類型 '{1}' 的屬性 '{0}'。</target>
<target state="translated">未在類型上產生屬性的繫結邏輯</target>
<note />
</trans-unit>
- <trans-unit id="TypeNotSupportedMessageFormat">
- <source>Type '{0}' is not supported: {1}.</source>
- <target state="translated">不支援類型 '{0}': {1}。</target>
+ <trans-unit id="TypeNotSupported">
+ <source>The type is not supported: '{0}'.</source>
+ <target state="new">The type is not supported: '{0}'.</target>
<note />
</trans-unit>
<trans-unit id="TypeNotSupportedTitle">
// The .NET Foundation licenses this file to you under the MIT license.
using System.Collections.Generic;
-using Microsoft.CodeAnalysis;
namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
{
-
internal sealed record SourceGenerationSpec(
Dictionary<MethodSpecifier, HashSet<TypeSpec>> RootConfigTypes,
MethodSpecifier MethodsToGen,
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal abstract record CollectionSpec : TypeSpec
+ {
+ public CollectionSpec(ITypeSymbol type) : base(type)
+ {
+ IsReadOnly = type.IsReadOnly;
+ IsInterface = type is INamedTypeSymbol { TypeKind: TypeKind.Interface };
+ }
+
+ public required TypeSpec ElementType { get; init; }
+
+ public bool IsReadOnly { get; }
+
+ public bool IsInterface { get; }
+
+ public CollectionSpec? ConcreteType { get; init; }
+ }
+
+ internal sealed record ArraySpec : CollectionSpec
+ {
+ public ArraySpec(ITypeSymbol type) : base(type) { }
+
+ public override TypeSpecKind SpecKind => TypeSpecKind.Array;
+ }
+
+ internal sealed record EnumerableSpec : CollectionSpec
+ {
+ public EnumerableSpec(ITypeSymbol type) : base(type) { }
+
+ public override TypeSpecKind SpecKind => TypeSpecKind.Enumerable;
+ }
+
+ internal sealed record DictionarySpec : CollectionSpec
+ {
+ public DictionarySpec(INamedTypeSymbol type) : base(type) { }
+
+ public override TypeSpecKind SpecKind => TypeSpecKind.Dictionary;
+
+ public required ParsableFromStringTypeSpec KeyType { get; init; }
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal sealed record ConfigurationSectionTypeSpec : TypeSpec
+ {
+ public ConfigurationSectionTypeSpec(ITypeSymbol type) : base(type) { }
+ public override TypeSpecKind SpecKind => TypeSpecKind.IConfigurationSection;
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal enum ConstructionStrategy
+ {
+ NotApplicable = 0,
+ ParameterlessConstructor = 1,
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal sealed record NullableSpec : TypeSpec
+ {
+ public NullableSpec(ITypeSymbol type) : base(type) { }
+ public override TypeSpecKind SpecKind => TypeSpecKind.Nullable;
+ public required TypeSpec UnderlyingType { get; init; }
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System.Collections.Generic;
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal sealed record ObjectSpec : TypeSpec
+ {
+ public ObjectSpec(INamedTypeSymbol type) : base(type) { }
+ public override TypeSpecKind SpecKind => TypeSpecKind.Object;
+ public List<PropertySpec> Properties { get; } = new();
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System.Diagnostics;
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal sealed record ParsableFromStringTypeSpec : TypeSpec
+ {
+ public ParsableFromStringTypeSpec(ITypeSymbol type) : base(type) { }
+
+ public override TypeSpecKind SpecKind => TypeSpecKind.ParsableFromString;
+
+ public required StringParsableTypeKind StringParsableTypeKind { get; init; }
+
+ private string? _parseMethodName;
+ public string ParseMethodName
+ {
+ get
+ {
+ Debug.Assert(StringParsableTypeKind is not StringParsableTypeKind.ConfigValue);
+
+ _parseMethodName ??= StringParsableTypeKind is StringParsableTypeKind.ByteArray
+ ? "ParseByteArray"
+ // MinimalDisplayString.Length is certainly > 2.
+ : $"Parse{(char.ToUpper(MinimalDisplayString[0]) + MinimalDisplayString.Substring(1)).Replace(".", "")}";
+
+ return _parseMethodName;
+ }
+ }
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System.Linq;
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal sealed record PropertySpec
+ {
+ public PropertySpec(IPropertySymbol property)
+ {
+ Name = property.Name;
+ IsStatic = property.IsStatic;
+ CanGet = property.GetMethod is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, IsInitOnly: false };
+ CanSet = property.SetMethod is IMethodSymbol { DeclaredAccessibility: Accessibility.Public, IsInitOnly: false };
+ }
+
+ public string Name { get; }
+ public bool IsStatic { get; }
+ public bool CanGet { get; }
+ public bool CanSet { get; }
+ public required TypeSpec Type { get; init; }
+ public required string ConfigurationKeyName { get; init; }
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using Microsoft.CodeAnalysis;
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal abstract record TypeSpec
+ {
+ private static readonly SymbolDisplayFormat s_minimalDisplayFormat = new SymbolDisplayFormat(
+ globalNamespaceStyle: SymbolDisplayGlobalNamespaceStyle.Omitted,
+ typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameAndContainingTypes,
+ genericsOptions: SymbolDisplayGenericsOptions.IncludeTypeParameters,
+ miscellaneousOptions: SymbolDisplayMiscellaneousOptions.UseSpecialTypes);
+
+ public TypeSpec(ITypeSymbol type)
+ {
+ FullyQualifiedDisplayString = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
+ MinimalDisplayString = type.ToDisplayString(s_minimalDisplayFormat);
+ Namespace = type.ContainingNamespace?.ToDisplayString();
+ IsValueType = type.IsValueType;
+ }
+
+ public string FullyQualifiedDisplayString { get; }
+
+ public string MinimalDisplayString { get; }
+
+ public string? Namespace { get; }
+
+ public bool IsValueType { get; }
+
+ public abstract TypeSpecKind SpecKind { get; }
+
+ public virtual ConstructionStrategy ConstructionStrategy { get; init; }
+
+ /// <summary>
+ /// Where in the input compilation we picked up a call to Bind, Get, or Configure.
+ /// </summary>
+ public required Location? Location { get; init; }
+ }
+}
--- /dev/null
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
+{
+ internal enum TypeSpecKind
+ {
+ Unknown = 0,
+ ParsableFromString = 1,
+ Object = 2,
+ Array = 3,
+ Enumerable = 4,
+ Dictionary = 5,
+ IConfigurationSection = 6,
+ Nullable = 7,
+ }
+
+ internal enum StringParsableTypeKind
+ {
+ None = 0,
+ ConfigValue = 1,
+ Enum = 2,
+ ByteArray = 3,
+ Integer = 4,
+ Float = 5,
+ Parse = 6,
+ ParseInvariant = 7,
+ CultureInfo = 8,
+ Uri = 9,
+ }
+}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-using Microsoft.CodeAnalysis;
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal abstract record TypeSpec
- {
- private static readonly SymbolDisplayFormat s_minimalDisplayFormat = new SymbolDisplayFormat(
- globalNamespaceStyle: SymbolDisplayGlobalNamespaceStyle.Omitted,
- typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameAndContainingTypes,
- genericsOptions: SymbolDisplayGenericsOptions.IncludeTypeParameters,
- miscellaneousOptions: SymbolDisplayMiscellaneousOptions.UseSpecialTypes);
-
- public TypeSpec(ITypeSymbol type)
- {
- FullyQualifiedDisplayString = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
- MinimalDisplayString = type.ToDisplayString(s_minimalDisplayFormat);
- Namespace = type.ContainingNamespace?.ToDisplayString();
- IsValueType = type.IsValueType;
- }
-
- public string FullyQualifiedDisplayString { get; }
-
- public string MinimalDisplayString { get; }
-
- public string? Namespace { get; }
-
- public bool IsValueType { get; }
-
- public abstract TypeSpecKind SpecKind { get; }
-
- public virtual ConstructionStrategy ConstructionStrategy { get; init; }
-
- /// <summary>
- /// Where in the input compilation we picked up a call to Bind, Get, or Configure.
- /// </summary>
- public required Location? Location { get; init; }
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-
-namespace Microsoft.Extensions.Configuration.Binder.SourceGeneration
-{
- internal enum TypeSpecKind
- {
- Unknown = 0,
- ParsableFromString = 1,
- Object = 2,
- Array = 3,
- Enumerable = 4,
- Dictionary = 5,
- IConfigurationSection = 6,
- Nullable = 7,
- }
-
- internal enum StringParsableTypeKind
- {
- None = 0,
- ConfigValue = 1,
- Enum = 2,
- ByteArray = 3,
- Integer = 4,
- Float = 5,
- Parse = 6,
- ParseInvariant = 7,
- CultureInfo = 8,
- Uri = 9,
- }
-}
});
}
- throw new global::System.NotSupportedException($"Unable to bind to type '{typeof(T)}': 'Generator parser did not detect the type as input'");
+ throw new global::System.NotSupportedException($"Unable to bind to type '{typeof(T)}': generator did not detect the type as input.");
}
}
return (T)(object)obj;
}
- throw new global::System.NotSupportedException($"Unable to bind to type '{typeof(T)}': 'Generator parser did not detect the type as input'");
+ throw new global::System.NotSupportedException($"Unable to bind to type '{typeof(T)}': generator did not detect the type as input.");
}
}