将
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
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 1/3 共三个压缩文件,请全部下载后解压 Part of: Ultimate | Enterprise 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take ...
Json.NET For Silverlight API
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 2012 V2 Studio for Silverlight 文件名称:C1Silverlight_2012v2.msi 60+ powerful, yet lightweight, controls offer the latest Web UI trends and take advantage of everything Silverlight 5 ...
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...
此应用实例是一个全功能的展示应用。运行调试通过,共享出来,大家参考、...实例充分利用的Silverlight 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 3.1 for Silverlight
ArcGIS API FOR silverlight
ArcGIS Viewer for Silverlight 最新版 离线文档
arcgis api for silverlight 3.0版本,好用
ArcGIS API for Silverlight 开发入门教程,讲解API的相关使用!
ArcGIS API 3.3 for Silverlight
目前最新的api for silverlight 版本,供学习使用。
☆ 资料说明: ☆ Telerik RadControls for Silverlight 5 2013 Q1 SP1 Demos 此版本为开发版(零售版),无需序列号、无需破解;
Telerik RadControls for Silverlight Beta2 如果喜欢,请购买正版。 www.fosoyo.com
Map.Layers是一个集合,可以往里面添加layer,这里的layer指的是ArcGIS Server或其他软件发布的地图服务,目前SilverlightAPI中支持的能够直接使用的有ArcGISDynamicMapServiceLayer,ArcGISTiledMapServiceLayer,...