| File: Core\FrameworkReferenceGroup.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 System.Collections.Generic; using NuGet.Frameworks; using NuGet.Shared; namespace NuGet.Packaging { /// <summary> /// A group of FrameworkReference with the same target framework. /// </summary> public class FrameworkReferenceGroup : IEquatable<FrameworkReferenceGroup>, IFrameworkSpecific { /// <summary> /// FrameworkReference group /// </summary> /// <param name="targetFramework">group target framework</param> /// <param name="frameworkReferences">FrameworkReferences</param> public FrameworkReferenceGroup(NuGetFramework targetFramework, IEnumerable<FrameworkReference> frameworkReferences) { TargetFramework = targetFramework ?? throw new ArgumentNullException(nameof(targetFramework)); FrameworkReferences = frameworkReferences ?? throw new ArgumentNullException(nameof(frameworkReferences)); } /// <summary> /// Group target framework /// </summary> public NuGetFramework TargetFramework { get; } /// <summary> /// FrameworkReferences /// </summary> public IEnumerable<FrameworkReference> FrameworkReferences { get; } public bool Equals(FrameworkReferenceGroup? other) { if (ReferenceEquals(other, null)) { return false; } if (ReferenceEquals(this, other)) { return true; } return TargetFramework.Equals(other.TargetFramework) && FrameworkReferences.OrderedEquals(other.FrameworkReferences, dependency => dependency); } public override bool Equals(object? obj) { return Equals(obj as FrameworkReferenceGroup); } public override int GetHashCode() { var combiner = new HashCodeCombiner(); combiner.AddObject(TargetFramework); combiner.AddUnorderedSequence(FrameworkReferences); return combiner.CombinedHash; } } }