uint RegisterTypeInternal(ref uint nextIdVariable, Type type, TypeSignatureCreator signatureCreator, ValueInstantiator instantiator, ValueWrapper wrapper) { RegisteredType registeredType = new RegisteredType(nextIdVariable, type, signatureCreator, instantiator, wrapper); _registeredTypes.Add(registeredType); nextIdVariable++; return(registeredType.Id); }
public RegisteredType(uint id, Type type, TypeSignatureCreator signatureCreator, ValueInstantiator instantiator, ValueWrapper wrapper) { Id = id; Type = type; TypeSignature = signatureCreator(id, type); Instantiator = instantiator; Wrapper = wrapper; }
uint RegisterBuiltInType(Type type, TypeSignatureCreator signatureCreator, ValueInstantiator instantiator, ValueWrapper wrapper) { if (_nextBuiltInType > MaxBuiltInTypeId) { throw new InvalidOperationException(); } return(RegisterTypeInternal(ref _nextBuiltInType, type, signatureCreator, instantiator, wrapper)); }