48 lines
1 KiB
C#
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
|
|
}
|
|
}
|