小编joh*_*hnc的帖子

在XML Literals中使用字符串

我是一个C#开发人员,他在VB6编写的第一个VB代码中摸索着,所以如果我问一个相当明显的问题,请原谅我.

我决定尝试使用XML Literals为我生成一些XML代码,而不是使用XMLDocument

我有两个问题,第二个问题是由于我无法找出第一个问题而解决的问题.

1:理想的解决方案

我有一个ElementName字典,ElementValue我的KeyValue对我循环,希望动态生成值,但下面的语法死了可怕的死亡

Dim xConnections As XElement        
For Each connection As Connection In connections.AsList
    For Each kvp As KeyValuePair(Of String, String) In connection.DecompiledElements
        xConnections = <Connections> <<%= kvp.Key %>><%= kvp.Value %><\<%=kvp.Key %>>  </Connections>
    Next
Next
Run Code Online (Sandbox Code Playgroud)

我对T4语法(<%=%>语法)的模糊记忆能够处理更复杂的操作(而不是直接赋值给<%=)和'Response.Write'这样的对象来写输出,但是我不记得细节了.

2:Cludgy解决方法

相反,我想到构建一个StringBuilder对象并将其.ToString分配给XElement,但是也因转换错误而失败.

我更愿意在上面的例子中继续使用我的键值对概念,因为我觉得上面的例子2中的字符串在一起非常讨厌,如果相反,我真的应该回到使用XMLDocument.

任何想法或帮助非常感谢

xml vb.net xml-literals

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

从单元测试中触发UI控件事件

作为TDD的初学者,我正在尝试编写一个测试,假设属性已在PropertyGrid(C#,WinForms,.NET 3.5)上更改了值.

更改属性网格中对象的属性不会触发事件(公平,因为它是一个UI引发的事件,所以我可以看到为什么更改拥有的对象可能对它不可见).

我也遇到了在更改SelectedNode属性时在TreeView上获取AfterSelect时遇到的相同问题.

我可以使用我的单元测试可以调用的函数来模拟UI事件将触发的代码,但这会使我的代码混乱,除非我将其公开,否则我必须在同一个项目中编写所有测试,甚至是我正在测试的对象(再次,我认为这是杂乱的).这对我来说似乎很难看,并且会受到可维护性问题的困扰.

是否存在执行此类基于UI的单元测试的约定

c# unit-testing winforms

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

C#我可以从另一个类中取消对象

我有一个在一个类中生成的对象

public class CreatingClass
{
    public T CreateObject<T>(Dictionary<string, object> parameters) where T : IMyInterface, new()
    {
        ....
    }

    public void DestroyObject(IMyInterface objectToDestroy)
    {
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

我从客户端类调用此函数,然后有时需要通过创建类通过我的应用程序使其无效.

我可以做以下事情

public class ClientClass
{
    MyObject obj;
    CreatingClass creatingClass = new CreatingClass();

    private void AFunctionToCreateMyClass()
    {
        obj = creatingClass.CreateObject<MyClass>(parameters);
    }

    private void AFunctionToDeleteMyObject()
    {
        CreatingClass.DestroyObject(obj);
        Assert.IsNull(obj);//Doesn't fail
    }
}
Run Code Online (Sandbox Code Playgroud)

我曾尝试过objectToDestroy = null,但不认为它会起作用(而且它没有)

.net c# null

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

我在Vista Home Premium上开发.NET有什么损失

我最近购买了一台笔记本电脑进行一些异地开发,以及我在上下班途中的一些工作.

我习惯于在XP上开发,但笔记本电脑捆绑了一个版本的Vista家庭高级版(不幸的是我在这里没有发言权).我尝试在其上安装XP,但由于XP安装没有附带SATA驱动程序,因此失败了.

我知道你可以使用nlite创建XP安装程序的'滑动版',并且可能会这样做,但是根据我的研究,这对许多人来说是个问题,缺少驱动程序,蓝屏等.

我正在尝试决定是否采用这个选项,或者只是接受我的Vista安装,所以我想了解我在开发方面会失去什么,例如IIS限制(卡西尼是一个可接受的替代品?).我将限制使用哪些版本的SQL.在.NET开发方面我还应该注意什么,或者,对于我需要的,Home Premium不是一个有效的选择?

编辑

为了回答为什么我要回到XP安装,我想消极的Vista出版社,以及我对我操作系统名称中的'Home'这个词的天生势利.:).

不过,如果我不是一个开发人员,我会非常乐意继续坚持下去,因为我宁可惹上我所拥有的东西而不是忍受试图破解目前正在运行的XP的痛苦系统.

感谢您的回答,并且非常乐意听到更多

.net operating-system windows-vista

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

在C#中获取计算机名而不引用Microsoft.VisualBasic.dll

有什么办法,除了引用Microsoft.VisualBasic.dll(如下面的.NET 3中)以检索到计算机名称

new Microsoft.VisualBasic.Devices.ServerComputer().Name
Run Code Online (Sandbox Code Playgroud)

.net c#

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

将委托传递给静态类会导致泄漏吗?

在.Net 2.0中工作,很快将代码库移到4.0

最近我一直在使用事件序列化类,并且发现我的事件订阅者(即表单)也会尝试序列化(我现在使用[field:NonSerializable]来阻止它).

这让我想到,如果我将委托传递给静态类的方法(仅用于方法范围),静态类是否为委托人的所有者,导致它被GC无法收集?

我有一个静态ListUtilities类来完成lambda表达式的工作,以及静态缓存,我经常传递委托,并想知道这是否会泄漏内存?

.net static delegates memory-leaks

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

什么在解析,DataSet.Tables或Dictionary <string,Tables>方面更快

我正在为导入导出测试(算法读取和编写复杂数据结构到我们的数据库,而不仅仅是测试IO操作)创建一个模拟数据库,并且我正在尝试决定是否使用DataSet来存储模拟表(按表格)在faux-database或Dictionary()中的名称)

在按名称检索数据表方面,我是否期望从dataset.Tables ["TableName"]或字典<"TableName">(来自Dictionary()?获得更好的性能?

.net datatable comparison dictionary

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

多重继承批评

我正在研究多重继承的概念(自从我在愤怒中编写C++以来已经差不多10年了,并且只是在学术上对这个概念感兴趣).我在维基百科上找到了这个参考.

他们列出的对MI的批评是"无法从单个类中明确地继承多次".我对这个陈述感到困惑,并不是百分之百地确定这是指什么.

当然,一个类继承描述了一个类的结构,并且从同一个类继承多次只会重复相同的类契约,所以我看不出它会给批评辩护的好处.显式继承是否会假设类函数和属性的多个实例?

我想了解这个批评所指的是什么,以及为什么启用多重继承的语言隐含无法使用它.

oop multiple-inheritance

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

在ANSI SQL的CREATE TABLE语句中创建默认的命名列

我想在CREATE TABLE语句中以符合ANSI的方式创建命名默认值

如果我尝试像往常那样在ALTER TABLE语句中添加CONSTRAINT,它将失败(至少在SQL SERVER中,尽管我强调我希望找到ANSI投诉语句,因为我希望它能在多种情况下使用Ado.NET DbConnections)。

例:

CREATE TABLE [dbo].[MyExample]
(
Id int NOT NULL IDENTITY (1, 1),
Name varchar(512) NOT NULL,         
IsActive bit NOT NULL,
CONSTRAINT PK_MyExample PRIMARY KEY CLUSTERED (Id),
CONSTRAINT DF_MyExample_IsActive  DEFAULT (1) FOR [IsActive]
)
Run Code Online (Sandbox Code Playgroud)

错误:

“ for”附近的语法不正确。

sql ansi-sql

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

如何在点击事件中停止计时器?在 C#.Net 中?

如何停止 Winforms 计时器触发 Tick 事件?

这是我的代码:

    Timer tm = new Timer();

    private void button1_Click(object sender, EventArgs e)
    {
        tm = new Timer();
        tm.Interval = 1000;
        tm.Tick += new EventHandler(tm_Tick);
        tm.Start();
    }

    void tm_Tick(object sender, EventArgs e)
    {
        MessageBox.Show("hi");
        tm.Stop();

    }
Run Code Online (Sandbox Code Playgroud)

winforms

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