Exemple #1
0
        /// <summary>
        /// Creates a nuget-package-owners attribute.
        /// </summary>
        /// <param name="packageOwners">A read-only list of package owners.</param>
        /// <returns>An attribute object.</returns>
        /// <exception cref="ArgumentException">Thrown if <paramref name="packageOwners" /> is either <c>null</c>
        /// or empty or if any package owner name is invalid.</exception>
        public static CryptographicAttributeObject CreateNuGetPackageOwners(IReadOnlyList <string> packageOwners)
        {
            if (packageOwners == null || packageOwners.Count == 0)
            {
                throw new ArgumentException(Strings.ArgumentCannotBeNullOrEmpty, nameof(packageOwners));
            }

            if (packageOwners.Any(packageOwner => string.IsNullOrWhiteSpace(packageOwner)))
            {
                throw new ArgumentException(Strings.NuGetPackageOwnersInvalidValue, nameof(packageOwners));
            }

            var nugetPackageOwners = new NuGetPackageOwners(packageOwners);
            var bytes = nugetPackageOwners.Encode();

            return(new CryptographicAttributeObject(
                       new Oid(Oids.NuGetPackageOwners),
                       new AsnEncodedDataCollection(new AsnEncodedData(Oids.NuGetPackageOwners, bytes))));
        }