JD2022-TU1/main/tools/framework/JD.Reflection/MefImplementations/Model/Internal/LazyMemberInfo.cs

48 lines
1 KiB
C#

using System;
using System.Reflection;
namespace JD.Reflection.MefImplementations.Model.Internal
{
internal struct LazyMemberInfo
{
#region Variables
private readonly Func<MemberInfo> m_memberProvider;
private MemberInfo m_resolvedMember;
#endregion
#region Constructor
public LazyMemberInfo(MemberInfo member)
{
m_memberProvider = null;
m_resolvedMember = member;
}
public LazyMemberInfo(Func<MemberInfo> memberProvider)
{
m_memberProvider = memberProvider;
m_resolvedMember = null;
}
#endregion
#region Properties
public MemberInfo Member
{
get
{
if (m_resolvedMember == null && m_memberProvider != null)
{
m_resolvedMember = m_memberProvider();
}
return m_resolvedMember;
}
}
#endregion
}
}