小编Jon*_*son的帖子

如何使用反射调用扩展方法?

我很感激之前已经提出了类似的问题,但我正在努力调用以下代码中的Linq Where方法.我希望使用反射动态调用此方法,并动态构建Where子句中使用的委托(或lambda).这是一个简短的代码示例,一旦工作,将有助于形成我正在构建的解释DSL的一部分.干杯.

    public static void CallWhereMethod()
    {
        List<MyObject> myObjects = new List<MyObject>(){new MyObject{Name="Jon Simpson"}};
        System.Delegate NameEquals = BuildEqFuncFor<MyObject>("Name", "Jon Simpson");
        object[] atts = new object[1] ;
        atts[0] = NameEquals;

        var ret = typeof(List<MyObject>).InvokeMember("Where", BindingFlags.InvokeMethod, null, InstanceList,atts);
    }

    public static Func<T, bool> BuildEqFuncFor<T>(string prop, object val)
    {
        return t => t.GetType().InvokeMember(prop,BindingFlags.GetProperty,
                                             null,t,null) == val;
    }
Run Code Online (Sandbox Code Playgroud)

c# linq reflection lambda delegates

31
推荐指数
2
解决办法
2万
查看次数

如何在C#.NET中深层复制不同类型的对象

我需要按字段名称映射ObjectV1和ObjectV2之间的所有字段值和子集合.ObjectV2与ObjectV1位于不同的namspace中.

模板ClassV1和ClassV2之间的继承已被打折扣,因为这两个类需要独立发展.我已经考虑过使用反射(慢速)和二进制序列化(也很慢)来执行公共属性的映射.

有首选方法吗?还有其他选择吗?

.net c# reflection serialization

10
推荐指数
1
解决办法
1万
查看次数

用于生成正则表达式的最终用户工具

我们有一个SaaS应用程序要求,允许负责构建CMS站点的用户在表单中定义最多10个自定义字段.作为此字段定义的一部分,我们要添加一个字段验证选项,我们将其存储(并在运行时应用)作为注册表.

是否有任何工具,代码示例或类似的提供向导式前端来构建reg-ex.我们希望在我们的.NET站点中嵌入一个控件或代码,它将从(伪)用户友好术语生成reg-ex(如果可能,接近自然语言).

例如,Field 1 =(5个字母数字),然后是(1到3个数字),接着是" - ",然后是1个alpha

.net regex nlp

9
推荐指数
1
解决办法
478
查看次数

术语"真实"的面向对象是什么意思

我已经听过很多关于Ruby的信息,甚至Javascript可能是"真正的"面向对象语言,而C++和C#则是面向类(或基于模板)的语言.真正的OO是什么意思,这对于类/模板方法有什么好处?

c# ruby oop

8
推荐指数
1
解决办法
3681
查看次数

有哪些工具可用于确定自上次构建以来哪些.NET程序集已更改?

有一个非常大的.NET站点/解决方案(100个程序集),是否有任何工具可用于识别自上次构建以来哪些程序集已更改(使用比文件日期更智能的内容,这些内容将始终更改).

我需要将部署过程更改为a)增加已更改程序集的版本,以及b)生成增量版本以包含这些已修改的程序集.

我现在对我们的ASP.NET网站和BizTalk服务器的方法是重新部署构建后的完整的解决方案 - 这可能需要长达3个小时(大部分的时间都花在取消部署和重新部署的BizTalk应用程序).

Microsoft建议我们对程序集进行版本控制,并仅部署已更改的程序集以减少我们的部署窗口.我想尽可能地自动化.

我们目前正在使用MSBuild,TFS和优秀的"老式"人来管理我们的构建过程.

.net msbuild version-control build-process assemblies

6
推荐指数
1
解决办法
255
查看次数