小编WoF*_*gel的帖子

在类的所有方法之前运行方法

是否有可能在C#3或4中做到这一点?也许有一些反思?

class Magic
{

    [RunBeforeAll]
    public void BaseMethod()
    {
    }

    //runs BaseMethod before being executed
    public void Method1()
    {
    }

    //runs BaseMethod before being executed
    public void Method2()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

有一个替代解决方案,做Magic一个单例并将您的代码放在静态实例的getter上.这就是我做的:

public class Magic
{

    private static Magic magic = new Magic();
    public static Magic Instance
    {
        get
        {
            magic.BaseMethod();
            return magic;
        }
    }

    public void BaseMethod()
    {
    }

    //runs BaseMethod before being executed
    public void Method1()
    {
    }

    //runs BaseMethod before being executed
    public void …
Run Code Online (Sandbox Code Playgroud)

c# reflection

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

SQL Compact Edition 3.5 - 不允许访问数据库文件

我使用SQL Server Compact 3.5 开发了一个应用程序(100%本地,无法访问服务器),它在我的计算机上运行良好.但是,当我在另一台计算机上部署它时,它显示以下错误:

Access to the database file is not allowed. [ File name = data\BDApepucCE.sdf ]
Run Code Online (Sandbox Code Playgroud)

我部署在Windows XP计算机上.每当我尝试在数据库上写入时它都会显示此错误,但是,当我阅读时它会起作用.

我在Windows 7计算机上进行了测试,它工作率为100%,除非通过家庭组(即本地网络)访问该文件,但在读取/写入时它都失败了.

平台:Windows 7,Visual Studio 2010和.NET 4 Client Profile

.net c# sql sql-server-ce

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

responseXML始终为null

我使用firefox 3.6.10和firebug进行调试

所以,这是我的代码:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url,false);
xmlhttp.setRequestHeader('Content-Type',  'text/xml');
xmlhttp.send(null);
alert(xmlhttp.responseXML);
Run Code Online (Sandbox Code Playgroud)

responseXML总是为null,我已经尝试过来自不同域的几个URL.我也异步尝试过,结果相同.该responseText的总是正确返回,与它没有任何问题.

我的目标是获取responseXML.documentElement.

谢谢你的帮助.

编辑-----------
这个javascript代码是从Greasemonkey用户脚本执行的,我使其与所请求的URL具有相同的来源.此外,我尝试从firebug控制台执行,再次确保原始政策.两者都有相同的错误.
得讨厌javascript.

javascript ajax xmlhttprequest

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

C# - For vs Foreach - 巨大的性能差异

我正在对一个算法进行一些优化,该算法在给定的数组中找到大于X的最小数字,但随后ai偶然发现了一个奇怪的差异.在下面的代码中,"ForeachUpper"在625ms结束,"ForUpper"结束,我相信,几个小时(疯狂地慢).为什么这样?

  class Teste
{
    public double Valor { get; set; }

    public Teste(double d)
    {
        Valor = d;
    }

    public override string ToString()
    {
        return "Teste: " + Valor;
    }
}

  private static IEnumerable<Teste> GetTeste(double total)
    {
        for (int i = 1; i <= total; i++)
        {
            yield return new Teste(i);
        }
    }
    static void Main(string[] args)
    {
        int total = 1000 * 1000*30 ;
        double test = total/2+.7;

        var ieTeste = GetTeste(total).ToList();


        Console.WriteLine("------------");

        ForeachUpper(ieTeste.Select(d=>d.Valor), test);
        Console.WriteLine("------------");
        ForUpper(ieTeste.Select(d => d.Valor), …
Run Code Online (Sandbox Code Playgroud)

c# performance foreach for-loop

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

C# - 在MessageBox中按Enter键触发控制KeyUp事件

系统:Windows7 Pro,Visual Studio 2010,C#

我有一个文本框:textBox1 我设置了它的事件:

textBox1.KeyUp += new KeyEventHandler(textBox1_KeyUp);

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        button1.PerformClick();
    }
}

private void button1_Click(object sender, EventArgs e)
{ 
    if (string.IsNullOrEmpty(textBox1.Text))
    {
        MessageBox.Show("Invalid data", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return;
    } 
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,问题是,当输入的数据是无效的,因而MessageBox显示,当我打ENTERMessageBoxOK按钮,这也触发textBox1_KeyUp,从而导致MessageBox再次出现.因此,它会触发MessageBoxOK按钮,使其消失,并触发该按钮,textbox_keyUp然后再次显示消息框.

谢谢你的帮助.

c# winforms

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

如何在代码隐藏中添加GridView列?

我正在尝试在ASP.NET 2.0中向GridView添加一列

gridViewPoco.Columns.Add(...)
Run Code Online (Sandbox Code Playgroud)

但是,我找不到合适的选择.我想要以下等价物:

<asp:BoundField>
<asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview code-behind

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

MVC 2 - 标签的数据注释?

是否有注释来设置属性的Label-name?

例如:

public class MyModel
{

[LabelName("Your Phone")]
public string Phone{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

谢谢

然后在视图中,它会显示"你的手机"这个名字

<%=Html.LabelFor(Model.Phone)%>
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller model

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

C#在Windows窗体中滚动Panel

我正在使用VS2010,Windows 7

我有一个有很多图片框的面板.它有

AutoScroll = true
Run Code Online (Sandbox Code Playgroud)

当我拖动滚动条或单击它时滚动条正常工作.但是,我想用滚轮和方向键滚动它.

轮子根本没有响应(并且向表单添加事件处理程序不起作用,因为当我改变焦点时停止触发),并且使用箭头键我必须以编程方式滚动.我尝试了以下方法:

panel3.VerticalScroll.Value = panel3.VerticalScroll.Maximum;
Run Code Online (Sandbox Code Playgroud)

这不起作用,滚动条几乎没有移动.由于某种原因,最大值总是100.

我在车轮问题上尝试了什么(不起作用):

// Fires as long as i don't change focus to anything
this.MouseWheel += new MouseEventHandler(Panel1_MouseWheel);

private void Panel1_MouseWheel(object sender, MouseEventArgs e)
{
    panel3.Focus();
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# scroll panel winforms

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

Invisible team project branch阻止了TFS 2012中的解决方案分支 - 错误TF203028

我分支了一个团队项目,后来通过源代码管理浏览器删除了它.所以现在我正在尝试分支父解决方案,但我不断收到错误

TF203028: You cannot create a branch at $/ACID/Source because a branch already exists at $/ACID/Source/Acid.Web-branch-selectStyle. If $/ACID/Source/Acid.Web-branch-selectStyle is not a branch convert it back to a folder and retry the operation.
Run Code Online (Sandbox Code Playgroud)

问题是,这个分支不再存在,因此我无法删除或转换其文件夹.因此我根本无法解决我的解决方案.

目前我的解决方案中没有分支,至少不能通过源代码管理浏览器看到.

有任何想法吗?我正在使用VS2013.3

tfs tfs2012 visual-studio-2013

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

如何在自动生成的列之后在gridview中插入列 - ASP.NET

这是我的gridview:

<asp:GridView ID="gridview" runat="server" AutoGenerateColumns="true">
    <Columns>
        <asp:TemplateField HeaderText="TestColumn">
            <ItemTemplate>
                <asp:LinkButton ID="lkbtn" runat="server" Text="Edit"
                    CommandName="Update" CausesValidation="False" ToolTip="Edit" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

TestColumn结束是第一列,但我想自动生成的那些之后.

c# asp.net gridview

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