Add project files.

This commit is contained in:
Dmitry Kolchev
2019-08-29 23:24:07 +03:00
parent cf73662a92
commit b0dc0da558
80 changed files with 37714 additions and 0 deletions

View File

@@ -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];
}
}
}