Npgsql.NpgsqlParameter.NpgsqlParameter.ValidateAndGetLength C# (CSharp) Method

ValidateAndGetLength() private method

private ValidateAndGetLength ( ) : int
return int
        internal int ValidateAndGetLength()
        {
            if (_value == null) {
                throw new InvalidCastException($"Parameter {ParameterName} must be set");
            }

            if (_value is DBNull) {
                return 0;
            }

            // No length caching for simple types
            var asSimpleWriter = Handler as ISimpleTypeHandler;
            if (asSimpleWriter != null) {
                return asSimpleWriter.ValidateAndGetLength(Value, this);
            }

            var asChunkingWriter = Handler as IChunkingTypeHandler;
            Contract.Assert(asChunkingWriter != null,
                $"Handler {Handler.GetType().Name} doesn't implement either ISimpleTypeWriter or IChunkingTypeWriter");
            var lengthCache = LengthCache;
            var len = asChunkingWriter.ValidateAndGetLength(Value, ref lengthCache, this);
            LengthCache = lengthCache;
            return len;
        }