ModelReaderWriterContext
Context for ModelReaderWriter to work with AOT.
using System.ClientModel.Internal;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
namespace System.ClientModel.Primitives
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public abstract class ModelReaderWriterContext
{
public ModelReaderWriterTypeBuilder GetTypeBuilder(Type type)
{
if (!TryGetTypeBuilder(type, out ModelReaderWriterTypeBuilder builder))
throw new InvalidOperationException("No ModelReaderWriterTypeBuilder found for " + type.ToFriendlyName() + ". See 'https://aka.ms/no-modelreaderwritertypebuilder-found' for more info.");
return builder;
}
public bool TryGetTypeBuilder(Type type, [System.Runtime.CompilerServices.Nullable(2)] [System.Diagnostics.CodeAnalysis.NotNullWhen(true)] out ModelReaderWriterTypeBuilder builder)
{
if (TryGetTypeBuilderCore(type, out builder) && builder != null) {
builder.Context = this;
return true;
}
builder = null;
return false;
}
protected virtual bool TryGetTypeBuilderCore(Type type, [System.Runtime.CompilerServices.Nullable(2)] out ModelReaderWriterTypeBuilder builder)
{
builder = null;
return false;
}
}
}