C\#실제 응용 에 반 사 된 인 스 턴 스 코드
다음은 프로젝트 에 반 사 된 사용 방법 을 사례 로 설명 하 겠 습 니 다.
크게 세 단계 로 나 뉜 다.
첫 번 째 단 계 는 웹.config 에서 다음 코드 를 설정 합 니 다.(분석 에 필요 한 dll 을 동적 으로 수정 하기 위해 서 입 니 다)
<appSettings>
<add key="BizAssembly" value="PSMS.Biz"/>
</appSettings>
두 번 째 단 계 는 공공 프로그램 집합 을 처리 하 는 클래스 를 정의 합 니 다.
/// <summary>
///
/// </summary>
public static class FacadeService
{
static IDictionary<string, Type> serviceClassCatalog;//
static FacadeService()
{
serviceClassCatalog = new Dictionary<string, Type>();
Assembly assembly = Assembly.Load(new AssemblyName(ConfigurationManager.AppSettings["BizAssembly"]));//
Type[] types = assembly.GetExportedTypes();//
Type baseType = typeof(MarshalByRefObject);
foreach (Type type in types)
{
if (baseType.IsAssignableFrom(type))
{
Type[] interfaces = type.GetInterfaces();
// ,
if (interfaces.Length > 0)
{
serviceClassCatalog.Add(interfaces[0].FullName, type);
}
}
}
}
/// <summary>
/// ,
/// </summary>
/// <typeparam name="IFacade"> </typeparam>
/// <returns> </returns>
public static IFacade GetFacade<IFacade>()
{
string typeName = typeof(IFacade).FullName;
if (serviceClassCatalog.ContainsKey(typeName))
{
object realProxy = Activator.CreateInstance(serviceClassCatalog[typeName]);
return (IFacade)realProxy;
}
else
{
throw new Exception(" 。");
}
}
}
세 번 째 단 계 는 프로그램 코드 에서 호출 을 실현 합 니 다.
public partial class MyTest: System.Web.UI.Page
{
// ( )
static IUserInfoFacade userInfoFacade = FacadeService.GetFacade<IUserInfoFacade>();
//
//......
//......
private void Method1()
{
//
List<UserInfo> lstUserInfo = userInfoFacade.GetUserInfoList(unitCode, 0, 0);
//
//......
//......
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 반사 구현 Aop 에이전트 상세 정보반사를 이용하여 JDK의 동적 에이전트, 즉 AOP의 AOP 에이전트를 생성하여 목표 대상을 대체하고 코드에 증강을 직입한다. 프록시 인터페이스 정의 JDKf 동적 에이전트는 인터페이스에 동적 에이전트만 만들 수 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.