`

SLLambdaParser For Silverlight

阅读更多

LambdaParser 开源项目整合到Silverlight中,在Silverlight客户端上执行C#委托代码

    LambdaParser源代码可在http://code.google.com/p/lambda-parser/ 下载

    相关网址:http://www.cnblogs.com/zhucai/archive/2010/01/25/lambdaparser.html (朱才博客园)

 

修改条款:

    1 修改了ExpressionParserCore.cs中的 GetTypeCore(string typeName)方法:

 

/// <summary>
        /// 根据类型名称获取类型的对象
        /// </summary>
        /// <param name="typeName"></param>
        /// <returns></returns>
        private Type GetTypeCore(string typeName)
        {
            #if SILVERLIGHT
                Assembly a = typeof(System.Action).Assembly;
                Type type = a.GetType(typeName, false);
                if (type != null)
                    return type;

                foreach (System.Windows.AssemblyPart ap in System.Windows.Deployment.Current.Parts)
                {
                    System.Windows.Resources.StreamResourceInfo sri = System.Windows.Application.GetResourceStream(new Uri(ap.Source, UriKind.Relative));
                    Assembly assembly = new System.Windows.AssemblyPart().Load(sri.Stream);
                    type = assembly.GetType(typeName, false);
                    if (type != null)
                        return type;
                }
            #else
                // First - try all loaded types
                foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
                {
                    Type type = assembly.GetType(typeName, false, true);
                    if (type != null)
                        return type;
                }
            #endif
            return type;
        }

    2 编译时listParam.ConvertAll<Type>(m => m.Type).ToArray()会报错,换写该方法为GetTypes(listParam):

 

private Type[] GetTypes(List<System.Linq.Expressions.Expression> listParam)
        {
            List<Type> types = new List<Type>();
            foreach (var expression in listParam)
            {
                types.Add(expression.Type);
            }

            return types.ToArray();
        }

    3 运行时ReadExpression中报错:“访问安全关键方法“System.Runtime.InteropServices.Marshal.SizeOf(System.Type)”的尝试失败。”

      注释了case "typeof"

//#region case "sizeof":
                    //case "sizeof":
                    //    {
                    //        string str = GetBracketString(false);
                    //        Type type = GetType(str);
                    //        //currentExpression = System.Linq.Expressions.Expression.Constant(System.Runtime.InteropServices.Marshal.SizeOf(type));
                    //    }
                    //    break;
                    //#endregion
 

 

 

 

分享到:
评论

相关推荐

    ArcGIS API for Silverlight 3.0

    **ArcGIS API for Silverlight 3.0** 是Esri公司推出的一款强大的地图和地理信息系统开发工具,专门针对Microsoft Silverlight平台设计。这个API允许开发者构建丰富的、交互式的Web应用程序,展示地图信息,进行地理...

    ArcGIS Viewer for Silverlight 离线文档

    《ArcGIS Viewer for Silverlight离线文档》是一个针对GIS(地理信息系统)开发工具的重要参考资料,主要服务于那些使用ArcGIS Viewer for Silverlight进行Web GIS应用开发的专业人士。ArcGIS Viewer for ...

    ComponentOne Studio for Silverlight 2012 v3 1/3

    ComponentOne Studio for Silverlight 2012 v3 1/3 一共有 3 个压缩文件,请全部下载后解压 ComponentOne Studio Silverlight 2012 v3 Silverlight UI Controls with Power and Style Get the controls and ...

    ComponentOne Studio for Silverlight 2013 v1 2/3

    ComponentOne Studio for Silverlight 2013 v1 1/3 共三个压缩文件,请全部下载后解压 Part of: Ultimate | Enterprise 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take ...

    ArcGIS 3.1 for Silverlight

    **ArcGIS 3.1 for Silverlight** 是Esri公司推出的一款基于Silverlight技术的Web GIS开发框架。这款产品主要用于构建交互式的、丰富的地理信息系统应用,让用户能够在浏览器中享受到类似桌面应用的体验。ArcGIS API ...

    Json.NET For Silverlight API

    Json.NET For Silverlight API

    ComponentOne Studio for Silverlight 2012 v3 2/3

    ComponentOne Studio for Silverlight 2012 v3 1/3 一共有 3 个压缩文件,请全部下载后解压 ComponentOne Studio Silverlight 2012 v3 Silverlight UI Controls with Power and Style Get the controls and ...

    ComponentOne Studio for Silverlight 2013 v1

    ComponentOne Studio for Silverlight 2013 v1 Part of: Ultimate | Enterprise 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take advantage of everything Silverlight 5 has...

    arcgis api for silverlight开发入门

    ### ArcGIS API for Silverlight 开发入门 #### 一、为何选择 Silverlight API? 随着信息技术的发展,GIS领域也需要不断地更新迭代以适应新的技术趋势。Silverlight作为一种新兴的技术平台,为GIS开发提供了新的...

    arcgis api for silverlight

    ArcGIS API for Silverlight是Esri公司开发的一款用于构建地理信息系统(GIS)Web应用程序的开发框架,主要针对Microsoft Silverlight技术。此API使得开发者能够利用Silverlight的强大功能和丰富的用户体验来展示、...

    ComponentOne Studio for Silverlight 2013 v1 3/3

    ComponentOne Studio for Silverlight 2013 v1 1/3 共三个压缩文件,请全部下载后解压 Part of: Ultimate | Enterprise 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take ...

    ArcGIS API for Silverlight 完整实例

    此应用实例是一个全功能的展示应用。运行调试通过,共享出来,大家参考、...实例充分利用的Silverlight 3的功能,比如:触发器、元件结合等,程序结构合理,实例开发了一系列的用户控件来构建应用,可复用性较强....

    Telerik 2019 SP1系列之 Telerik UI For Silverlight

    Telerik UI for Silverlight是Telerik公司开发的一套完整的用户界面组件库,专门针对Microsoft的Silverlight技术。这个组件库提供了丰富的控件和工具,帮助开发者构建功能强大的、具有现代感的Web应用程序。2019 SP1...

    Telerik RadControls for Silverlight Beta2

    **Telerik RadControls for Silverlight Beta2** 是一个专门针对微软Silverlight开发平台的UI控件库,由Telerik公司提供。这个库包含了丰富的用户界面元素,旨在帮助开发者快速、高效地构建出交互性强、视觉效果优秀...

    Telerik RadControls for Silverlight 5 2013 Q1 SP1 Demos

    【Telerik RadControls for Silverlight 5 2013 Q1 SP1 Demos】是Telerik公司推出的一款专门针对Silverlight 5平台的UI控件库,它为开发者提供了丰富的用户界面组件,用于构建高性能、高交互性的Web应用程序。...

    ArcGIS API 3.3 for Silverlight

    ArcGIS API 3.3 for Silverlight

    [开发工具] RadControls for Silverlight 5 2012.3

    【RadControls for Silverlight 5 2012.3】是Telerik公司推出的一套针对Silverlight 5平台的高级UI控件集,专为.NET开发者设计,旨在提升应用程序的用户界面体验和开发效率。这个版本是2012年3月的1017更新,提供的...

Global site tag (gtag.js) - Google Analytics