using System; using System.Collections.Generic; namespace EasyInject.Models { /// /// author: spyn /// description: Bean信息(作为IoC容器的Key) /// public class BeanInfo { public readonly string Name; public readonly Type Type; // 会出现的场景,不作为比较的条件 public readonly List Scenes = new(); public BeanInfo(string name, Type type) { Name = name; Type = type; } public BeanInfo(string name, Type type, string scene) { Name = name; Type = type; Scenes.Add(scene); } /// /// 重写Equals方法,用于比较两个BeanInfo是否相等 /// /// 另一个BeanInfo /// 是否相等 public override bool Equals(object obj) { if (obj is BeanInfo beanInfo) { return Name == beanInfo.Name && Type == beanInfo.Type; } return false; } public override int GetHashCode() { return Name.GetHashCode() ^ Type.GetHashCode(); } public override string ToString() { return $"BeanInfo: {Name} - {Type}"; } } }