一个接口的世界, 包含了ORM的基础以及MVC的基础。
public
interface IEntityProxy
{
/// <summary>
/// 获取实例对象的属性值
/// </summary>
/// <param name="entity"> 对象实例 </param>
/// <param name="propertyName"> 属性名 </param>
/// <returns> 属性值 </returns>
object GetPropertyValue( object entity, string propertyName);
/// <summary>
/// 设置实例对象的属性值
/// </summary>
/// <param name="entity"> 对象实例 </param>
/// <param name="propertyName"> 属性名 </param>
/// <param name="propertyValue"> 属性值 </param>
void SetPropertyValue( object entity, string propertyName, object propertyValue);
/// <summary>
/// 动态调用方法。
/// </summary>
/// <param name="entity"> 对象实例 </param>
/// <param name="methodName"> 方法名 </param>
/// <param name="dataAdapter"> 参数名,参数值数据集 </param>
/// <returns> 返回值 </returns>
object Invoke( object entity, string methodName, BeeDataAdapter dataAdapter);
{
/// <summary>
/// 获取实例对象的属性值
/// </summary>
/// <param name="entity"> 对象实例 </param>
/// <param name="propertyName"> 属性名 </param>
/// <returns> 属性值 </returns>
object GetPropertyValue( object entity, string propertyName);
/// <summary>
/// 设置实例对象的属性值
/// </summary>
/// <param name="entity"> 对象实例 </param>
/// <param name="propertyName"> 属性名 </param>
/// <param name="propertyValue"> 属性值 </param>
void SetPropertyValue( object entity, string propertyName, object propertyValue);
/// <summary>
/// 动态调用方法。
/// </summary>
/// <param name="entity"> 对象实例 </param>
/// <param name="methodName"> 方法名 </param>
/// <param name="dataAdapter"> 参数名,参数值数据集 </param>
/// <returns> 返回值 </returns>
object Invoke( object entity, string methodName, BeeDataAdapter dataAdapter);
}
欢迎大家讨论及实现该接口。
SetPropertyValue 这两个方法为实现ORM的基础。
Invoke 则为实现MVC的基础。
实现的方式有:1:Reflection; 2: Emit; 3:Expression Tree.