public StringPayloadLinkedResource DeepCloneWithResourceKind(StringPayloadLinkedResourceKind resourceKind)
        {
            var result = new StringPayloadLinkedResource(
                this.Value?.DeepClone(),
                resourceKind);

            return(result);
        }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="StringPayloadLinkedResource"/> class.
        /// </summary>
        /// <param name="value">The string payload value.</param>
        /// <param name="resourceKind">The kind of resource.</param>
        public StringPayloadLinkedResource(
            string value,
            StringPayloadLinkedResourceKind resourceKind)
        {
            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            if (string.IsNullOrWhiteSpace(value))
            {
                throw new ArgumentException(Invariant($"{nameof(value)} is white space."));
            }

            if (resourceKind == StringPayloadLinkedResourceKind.Unknown)
            {
                throw new ArgumentOutOfRangeException(Invariant($"{nameof(resourceKind)} is {nameof(StringPayloadLinkedResourceKind.Unknown)}."));
            }

            this.Value        = value;
            this.ResourceKind = resourceKind;
        }