ReflectionReadOnlyMemoryBuilder<T>
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
namespace System.ClientModel.Primitives
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("This class uses reflection. Pass in a generated ModelReaderWriterContext to be AOT compatible.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("This class uses reflection. Pass in a generated ModelReaderWriterContext to be AOT compatible.")]
internal class ReflectionReadOnlyMemoryBuilder<[System.Runtime.CompilerServices.Nullable(2)] T> : ModelReaderWriterTypeBuilder
{
private Type _memoryType;
protected override Type BuilderType => typeof(List<>).MakeGenericType(typeof(T));
protected override Type ItemType => typeof(T);
public ReflectionReadOnlyMemoryBuilder(Type memoryType)
{
_memoryType = memoryType;
}
protected override object CreateInstance()
{
return Activator.CreateInstance(BuilderType);
}
protected override void AddItem(object collection, [System.Runtime.CompilerServices.Nullable(2)] object item)
{
BuilderType.GetMethod("Add", new Type[1] {
ItemType
}).Invoke(collection, new object[1] {
item
});
}
protected override object ConvertCollectionBuilder(object builder)
{
return Activator.CreateInstance(_memoryType, BuilderType.GetMethod("ToArray").Invoke(builder, null));
}
[IteratorStateMachine(typeof(ReflectionReadOnlyMemoryBuilder<>.<GetItems>d__9))]
[return: System.Runtime.CompilerServices.Nullable(2)]
protected override IEnumerable GetItems(object obj)
{
<GetItems>d__9 <GetItems>d__ = new <GetItems>d__9(-2);
<GetItems>d__.<>3__obj = obj;
return <GetItems>d__;
}
}
}