LCLFramework框架之数据门户职责
- 形成统一的数据访问方式。
LCLFramework框架之数据门户设计
数据门户分为客户端/服务端。
![](file:///C:/Users/Administrator/AppData/Local/YNote/data/minguiluo@163.com/24dda3503ac64dada08a97c31f3885f9/clipboard.png)
![](file:///C:/Users/Administrator/AppData/Local/YNote/data/minguiluo@163.com/ea397be81a9b4aca957715415c9fece3/clipboard.png)
LCLFramework框架之数据门户设计代码
数据门户交互实现:
1:WcfPortal
2:WebServicePortal
![](file:///C:/Users/Administrator/AppData/Local/YNote/data/minguiluo@163.com/76d1edbc445e4902bd277b68fe0a5754/clipboard.png)
/// <summary>
/// 数据访问层执行的地点
/// </summary>
public enum DataPortalLocation
{
/// <summary>
/// 根据 LCLEnvironment.Location 而判断是否在远程服务端执行。
///
/// 此种状态下,目前只有 LCLLocation.WPFClient 的位置时,才会选择在远程服务器执行。20130118
/// </summary>
Dynamic,
/// <summary>
/// 将在当前机器执行。
/// </summary>
Local,
}
public interface IDataPortalServer
{
DataPortalResult Action(Type objectType, string methodName, object criteria, DataPortalContext context);
}
/// <summary>
/// 最终调用实体的 IDataPortalServer 门户实现。
/// </summary>
public class LCLDataPortal : IDataPortalServer
{
public DataPortalResult Action(Type objectType, string methodName, object criteria, DataPortalContext context)
{
var obj = RF.Find(objectType);
//通过反射 调用
var res = MethodCaller.CallMethodIfImplemented(obj, methodName, criteria);
if (res != null)
return new DataPortalResult(res);
else
return new DataPortalResult(obj);
}
}