我使用表达式树逻辑和流畅的API生成从不相关的源到目标对象的映射字典,使用MemberInfo
来标识要写入的成员。
我想确保如果重复映射(无论出于何种原因),我可能会在运行时失败或发出警告。假设MemberInfo
(及其实现)是唯一的,以及派生成员的单例是否安全?也就是说,将它用作集合中的关键是否可行?
为了论证,我现在只针对可公开写入的属性。
答案 0 :(得分:1)
是的,他们是单身人士(对于那些看过我之前的答案的人来说,有一个涉及MemberInfo[]
与MemberInfo
的打嗝。)
你可以证明这一点:
void Main()
{
MemberInfo a = typeof(a).GetMember("b")[0];
MemberInfo b = typeof(a).GetMember("b")[0];
Console.WriteLine(Object.ReferenceEquals(a, b));
}
// Define other methods and classes here
class a
{
public int b;
}
打印true
。