Add project files.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Compat.Runtime.Serialization
|
||||
{
|
||||
internal sealed class GenericParameterDataContract : DataContract
|
||||
{
|
||||
private readonly GenericParameterDataContractCriticalHelper _helper;
|
||||
|
||||
internal GenericParameterDataContract(Type type)
|
||||
: base(new GenericParameterDataContractCriticalHelper(type))
|
||||
{
|
||||
_helper = base.Helper as GenericParameterDataContractCriticalHelper;
|
||||
}
|
||||
|
||||
internal int ParameterPosition => _helper.ParameterPosition;
|
||||
|
||||
internal override bool IsBuiltInDataContract => true;
|
||||
|
||||
private class GenericParameterDataContractCriticalHelper : DataContract.DataContractCriticalHelper
|
||||
{
|
||||
private readonly int parameterPosition;
|
||||
|
||||
internal GenericParameterDataContractCriticalHelper(Type type)
|
||||
: base(type)
|
||||
{
|
||||
SetDataContractName(DataContract.GetStableName(type));
|
||||
parameterPosition = type.GenericParameterPosition;
|
||||
}
|
||||
|
||||
internal int ParameterPosition => parameterPosition;
|
||||
}
|
||||
|
||||
internal override DataContract BindGenericParameters(DataContract[] paramContracts, Dictionary<DataContract, DataContract> boundContracts)
|
||||
{
|
||||
return paramContracts[ParameterPosition];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user