| File: RuntimeModel\RuntimePackageDependency.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Packaging\NuGet.Packaging.csproj (NuGet.Packaging) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using NuGet.Shared; using NuGet.Versioning; namespace NuGet.RuntimeModel { /// <summary> /// A package dependency for a specific RID. /// </summary> /// <remarks> /// Immutable. /// </remarks> public sealed class RuntimePackageDependency : IEquatable<RuntimePackageDependency> { /// <summary> /// Dependency package id. /// </summary> public string Id { get; } /// <summary> /// Dependency version constraint. /// </summary> public VersionRange VersionRange { get; } public RuntimePackageDependency(string id, VersionRange versionRange) { Id = id; VersionRange = versionRange; } public override string ToString() { return $"{Id} {VersionRange}"; } public override bool Equals(object? obj) { return Equals(obj as RuntimePackageDependency); } public override int GetHashCode() { var combiner = new HashCodeCombiner(); combiner.AddStringIgnoreCase(Id); combiner.AddObject(VersionRange); return combiner.CombinedHash; } public bool Equals(RuntimePackageDependency? other) { if (ReferenceEquals(this, other)) { return true; } if (other == null) { return false; } return other != null && string.Equals(Id, other.Id, StringComparison.OrdinalIgnoreCase) && VersionRange.Equals(other.VersionRange); } } }