一个接口的世界, 包含了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.
术
摘要: 一个接口的世界, 包含了ORM的基础以及MVC的基础。 publicinterfaceIEntityProxy{///<summary>///获取实例对象的属性值///</summary>///<paramname="entity">对象实例</param>///<paramname="propertyName">属性名</param>///<returns>属性值</returns>objectGetPropertyValue(objectentity,st阅读全文
摘要: 关注Mono及Ubuntu很久了。 今天在window上搭了个SVN服务器, 然后Ubuntu上装了个esvn, 将项目中的文件更新下来。 并用monoDevelop重新编译。总算在上面跑起了一个我开发的一个控件组。 先看一下屏幕截图:(PS:其中Gif读取组件是用JillZhang开发的组件来进行解析)在程序迁移中, 碰到几个问题, 列出如下:1. MonoDevelop编译的过程中不支持资源文...阅读全文
摘要: 最近遇到一个数据量大引起的问题, 目前数据量大约8M条数据。以后还将以每天近万的数据增加。 因此考虑MsSqlServer的分区表特性。原先的表设计相当于表名为UserEventId(bigint),UserId(nvarchar(250)), EventId(nvarchar(250)), column1, column2, column3.此表相当于一张系统所有业务的索引表, 记录了某用户在此...阅读全文
摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1usingSystem;2usingSystem.IO;3usingSystem.Security;4usingSystem.Security.Permissions;56namespaceBee7{8...阅读全文