小编gre*_*ade的帖子

动态对象属性populator(无反射)

我想以类似于CodeProject上的DynamicBuilder的方式填充对象的属性而不使用反射.CodeProject示例是为使用DataReader或DataRecord填充实体而定制的.我在几个DAL中使用它以达到很好的效果.现在我想修改它以使用字典或其他数据不可知对象,以便我可以在非DAL代码中使用它 - 我目前使用反射.我对OpCodes和IL几乎一无所知.我只知道它运作良好,比反射更快.

我试图修改CodeProject示例,由于我对IL的无知,我已经陷入两行.

  • 其中一个处理dbnulls,我很确定我可以丢失它,但我不知道它之前和之后的行是否相关,以及它们中的哪一个也需要去.
  • 另一方面,我认为,是之前将价值从数据线中拉出来的,现在需要将其从字典中拉出来.我想我可以用"property.Value"替换"getValueMethod",但我不确定.

我也愿意采用替代/更好的方法来遮盖这只猫.

这是迄今为止的代码(注释掉的行是我坚持的行):

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;

public class Populator<T>
{
    private delegate T Load(Dictionary<string, object> properties);
    private Load _handler;
    private Populator() { }
    public T Build(Dictionary<string, object> properties)
    {
        return _handler(properties);
    }
    public static Populator<T> CreateBuilder(Dictionary<string, object> properties)
    {
        //private static readonly MethodInfo getValueMethod = typeof(IDataRecord).GetMethod("get_Item", new [] { typeof(int) });
        //private static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod("IsDBNull", new [] { typeof(int) });
        Populator<T> dynamicBuilder = …
Run Code Online (Sandbox Code Playgroud)

c# ilgenerator opcode

5
推荐指数
1
解决办法
6975
查看次数

指示MEF使用任何可用的组件

我正在使用.net-4.0中的System.ComponentModel.Composition在Visual Studio 2010 beta 2中首次尝试Managed Extensibility Framework.

我无法使用下面两个替代例程让CompositionContainer找到我的实现程序集.

第一次尝试(这在MEF的较旧的codeplex版本中有效):

var composition = new CompositionBatch();
composition.AddPart(this);
var container = new CompositionContainer(new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory));
container.Compose(composition);
Run Code Online (Sandbox Code Playgroud)

第二次尝试(我认为这在beta 1中有效):

var aggregateCatalog = new AggregateCatalog(
    new AssemblyCatalog(Assembly.GetExecutingAssembly()),
    new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory));
var compositionContainer = new CompositionContainer(aggregateCatalog);
compositionContainer.ComposeParts(this);
Run Code Online (Sandbox Code Playgroud)

在测试版2中是否有新的方法可以做到这一点?

编辑:事实证明这与作曲无关.我有一个静态属性代表我导入的实现:

[Import] public static ILog Log { get; set; }
Run Code Online (Sandbox Code Playgroud)

应该是:

[Import] public ILog Log { get; set; }
Run Code Online (Sandbox Code Playgroud)

我将Daniel的答案标记为已被接受,因为以更彻底的方式调试的sage建议解决了这个问题.

c# mef .net-4.0 visual-studio-2010

5
推荐指数
1
解决办法
1015
查看次数

强制x轴上的点之间的间隙(MS .Net图表控件,柱形图)

我有一个包含多个系列的柱形图,每个系列包含多个点.目前这些列都相互接触.我想强制每列之间的差距.我怎样才能做到这一点?

我发现应用PointWidth(Chart1.Series[seriesName]["PointWidth"] = (0.6).ToString();)会让我在x值组之间分离,而不是在单个组中的每个系列点之间(我需要).使用其他地方建议的空间隔系列并不能解决问题.

当前图表

我正在使用.Net 4,VS 2010,Web Application.我的图表代码如下:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;

namespace WebApplication1
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Chart1.ChartAreas.Add("Default");
            Chart1.ChartAreas["Default"].BackColor = Color.White;
            Chart1.ChartAreas["Default"].BackSecondaryColor = Color.AliceBlue;
            Chart1.ChartAreas["Default"].BackGradientStyle = GradientStyle.TopBottom;

            Chart1.BackColor = Color.AliceBlue;
            Chart1.BackSecondaryColor = Color.White;
            Chart1.BackGradientStyle = GradientStyle.TopBottom;
            Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
            var colors = new List<Color>(GetSystemColors().Where(c=>c.Name.StartsWith("Dark")));
            var rng = new Random();
            var start = rng.Next(0, colors.Count - 1); …
Run Code Online (Sandbox Code Playgroud)

.net c# data-visualization mschart

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

RDBMS的实际大小限制

我正在开发一个必须存储非常大的数据集和相关参考数据的项目.我从未遇到过需要这么大的表的项目.我已经证明,至少有一个开发环境不能应对数据库层与复杂查询对应用程序层生成的视图所需的处理(具有多个内部和外部联接的视图,对具有9000万行的表进行分组,求和和求平均值) ).

我测试过的RDBMS是AIX上的DB2.失败的开发环境加载了将在生产中处理的卷的1/20.我确信生产硬件优于dev和staging硬件,但我不相信它会处理大量的数据和查询的复杂性.

在开发环境失败之前,需要花费超过5分钟的时间来返回由大型表格复杂查询(许多连接,大量分组,求和和平均)生成的小数据集(数百行).

我的直觉是数据库架构必须改变,以便视图当前提供的聚合作为非高峰批处理过程的一部分执行.

现在我的问题.声称有这类事情经验的人(我不这样认为)我的担心是没有根据的,我向我保证.是吗?现代RDBMS(SQL Server 2008,Oracle,DB2)能否应对我所描述的数量和复杂性(给定适当数量的硬件),还是我们处于谷歌BigTable等技术领域?

我希望得到那些实际上不得不在非理论层面上使用这种音量的人的答案.

数据的性质是金融交易(日期,金额,地理位置,业务),因此几乎所有数据类型都有代表.所有参考数据都被标准化,因此是多个连接.

sql rdbms large-data-volumes

5
推荐指数
1
解决办法
2628
查看次数

如何使用jquery在asp.net mvc中交替表行颜色?

可能是一个愚蠢的问题,但我是MVC和jQuery的新手.我想交替我的表格的行颜色,我已经决定我将使用jQuery来做它.我知道我可以写一个扩展方法(http://haacked.com/archive/2008/08/07/aspnetmvc_cycle.aspx)等,但在阅读SH对http://haacked.com/archive上文章的评论之后/2008/05/03/code-based-repeater-for-asp.net-mvc.aspx我选择了jQuery作为我想要实现的解决方案.

我想实现http://www.packtpub.com/article/jquery-table-manipulation-part2中描述的方法,但我还没弄清楚在哪里放置初始jQuery调用(例如:$(document).ready (function(){...});

就像我说的,我是jQuery的新手......

jquery

4
推荐指数
2
解决办法
7594
查看次数

使用TFS 2010部署Web应用程序和Windows服务

刚从客户端站点的TFS 2008到2010,现在想知道TeamBuildTypes文件夹中的TFSBuild.proj文件发生了什么.我已经有了构建和丢弃工作,现在我需要让旧部署再次运行.我们曾经在TFSBuild.proj中使用AfterBuild目标执行此操作.这种机制似乎已在2010年发生变化或消失.

有人能指出我的文章或描述2010年部署选项的变化吗?

具体来说,我需要支持运行psexec以在远程部署目标上安装和启用Windows服务,并且我需要将一些网站/ Web服务部署到远程IIS节点,作为自动构建的一部分.

编辑:刚刚发现这个:http://blogs.msdn.com/jimlamb/archive/2009/11/03/upgrading-tfs-2008-build-definitions-to-tfs-2010.aspx我不止一点点2008年和2010年之间的重大变化带回来.我将需要有关如何在新的默认构建流程模板机制中部署远程站点和服务的建议.

deployment continuous-integration tfsbuild tfs2010

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

具有自动宽度和高度的Silverlight网格

Silverlight处女在这里.如何使我的网格周围的用户控件自动调整大小以适应内部的网格宽度?目前,当浏览器窗口更宽时,用户控件显示大约300或400像素.它渲染数据网格周围的垂直和水平滚动条,这是丑陋的.我想将控件宽度设置为"100%",但似乎不支持.我错过了什么?

到目前为止,这是我的xaml:

<UserControl x:Class="RichMedia.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
    <Grid x:Name="LayoutRoot" Background="White">
        <data:DataGrid Name="dataGrid1" AutoGenerateColumns="False"
            HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
            DataContext="{Binding}" />
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

编辑:我应该补充一点,我在使用Silverlight应用程序添加到现有Web应用程序项目时创建的Visual Studio 2010中使用默认容器.

以下是托管页面的标记:

<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        ...
        <style type="text/css">
            html, body { height: 100%; overflow: hidden; }
            body { padding: 0; margin: 0; }
            html, body { height: 100%; overflow: hidden; }
            #silverlightControlHost { height: 100%; text-align:center; }
        </style>
        <script type="text/javascript" src="Scripts/Silverlight.js"></script>
        ... …
Run Code Online (Sandbox Code Playgroud)

silverlight xaml silverlight-3.0

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

优雅的字符串分裂

我正在寻找一种更好的方法来完成以下代码块,它是EmailAddress类/对象的一部分.根据我的想法,零件阵列很笨重,我想知道是否没有一个使用元组或Linq的衬垫可以整理一下.

另外,对于电子邮件地址的第一部分,什么是比"别名"更好的属性名称?

public string Alias { get; private set; }
public string Domain { get; private set; }
private void Split(string emailAddress)
{
    var parts = emailAddress.Split(new[] { '@' });
    Alias = parts[0];
    Domain = parts[1];
}
Run Code Online (Sandbox Code Playgroud)

c# string

4
推荐指数
1
解决办法
958
查看次数

使用linq对列表进行采样

我需要一个辅助方法来将轴标签添加到图表中.我不想在图表中具有值的轴的每个点添加标签,因为这会太忙.所以我需要定期提取样品.到目前为止,我已经提出了满足要求的以下方法,但我认为必须有一种更简洁的方法来实现Linq.任何人都可以想到如何使这更简洁(n代表我想要的样本总数)?

public static List<T> Sample<T>(this List<T> list, int n)
{
  var samples = new List<T>();
  var divisor = list.Count/n;
  for (var i = 0; i < list.Count; i++)
    if (samples.Count == i/divisor)
      samples.Add(list[i]);
  return samples;
}
Run Code Online (Sandbox Code Playgroud)

c# linq algorithm

4
推荐指数
1
解决办法
1695
查看次数

将Guid表示为一组整数

如果我想将guid表示为一组整数,我将如何处理转换?我正在考虑获取guid的字节数组表示并将其分解为最少可能转换回原始guid的32位整数.代码示例首选...

此外,结果整数数组的长度是多少?

c# algorithm guid

3
推荐指数
2
解决办法
3730
查看次数

从SQLCE 4迁移到SQL Server 2008

因此,作为早期采用者,我基于阅读此公告引起的鲁莽行为,开发了基于SQLCE4,ASP.Net MVC3和实体框架CTP5(代码优先)的应用程序.

现在应用程序正在投入生产,我们需要失去ce,转而支持SQL Server 2008和更高版本的azure.

Scott Gu提到工具很快就会支持这种迁移,但我想知道我们是否为时尚早,无法利用一条简单的路线.

有人做过吗?是否有简单的迁移路径?像Visual Studio中的MDF创建脚本选项?

sql-server asp.net-mvc entity-framework sql-server-ce

3
推荐指数
1
解决办法
4598
查看次数

从外部程序集中检索程序集版本的最有效方法需要建议

我需要迭代一个程序集列表并确定它们的版本号.我之前使用过System.Reflection.Assembly.GetExecutingAssembly().GetName().版本,但在这种情况下我正在使用尚未加载的程序集.我知道我可以使用System.Reflection.Assembly.ReflectionOnlyLoadFrom("assembly.dll"),但我读过这可以吃内存,除非我在自己的应用程序域中加载程序集然后卸载它们.这是ReflectionOnlyLoadFrom()还是只是LoadFrom()?

或者,是否有一种方法可以在不加载程序集的情况下获取版本信息?

.net c# reflection

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

Team Foundation Server持续集成在与开发人员相同的计算机上

如果我设置它会慢吗?

我已经在我的机器上运行了,我想用TFS 2010设置CI.所以每次我检查代码时都会引发构建.这会使构建过程中的编码过程使我的计算机真的变慢吗?

我只是想在投资建立一个单独的机器之前测试其他所有内容.

continuous-integration tfs2010

0
推荐指数
1
解决办法
232
查看次数