小编Ian*_*Ian的帖子

XML区分大小写吗?

简短的问题

XML区分大小写吗?

更长的问题

例如:

<Shirt color="Red"/>
Run Code Online (Sandbox Code Playgroud)

属性颜色的类型string可以包含一组有效颜色(Red,BlueGreen).

为了验证XML,我使用了以下XSD:

  <xs:simpleType name="ColorType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Red"/>
      <xs:enumeration value="Blue"/>
      <xs:enumeration value="Green"/>
    </xs:restriction>
  </xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

我是否希望接受红色,蓝色和绿色的不同案例变体?或XML被广泛接受为区分大小写?

xml case-sensitive

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

将InternalsVisibleTo用于单元测试代码被认为是不好的做法吗?

框架中的示例代码AssemblyInfo.cs:

[assembly: System.Runtime.CompilerServices.InternalsVisibleTo
                          ("Test.Company.Department.Core")]
Run Code Online (Sandbox Code Playgroud)

这是一种不好的做法吗?

.net c# unit-testing

35
推荐指数
2
解决办法
6764
查看次数

将标签绑定到"变量"

假设我有一个名为X的全局变量INT.由于X是全局的,我们可以假设任何东西都可以修改它的值,以便每次都更改它.

假设我有一个名为"label"的Label控件.这就是我想要完成的事情:

我想将label.Text的值"绑定"到变量X.这样,当变量X被更改时,它将被反射回label.Text.

现在,我不想编写事件监听器并与代理一起玩这个(我希望尽可能少的代码).有没有办法使用DataBinding组件?或任何其他新技术?

谢谢,伊恩

c# data-binding winforms

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

为什么BITMAPS加载"向上"?

如果你有一个非常大的JPG和嵌入在HTML上的BMP并将它加载到Firefox中,你会注意到JPG将"向下"加载(从左到右,然后向下),BMP将加载"向上" (从右到左涂漆,然后向上涂).

只是好奇.:)

html browser rendering image

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

Visual Studio 2010 XAML编辑器尴尬的IntelliSense?

在Visual Studio C#文本编辑器中,当您需要属性时,只需键入prop然后单击选项卡TWICE以获取属性的"代码段"/模板.Type和属性名称都会突出显示.如果要在类型和属性之间切换,请按Tab键,然后在完成后按Enter键,光标将跳转到属性的末尾.

在WPF XAML编辑器中,按"Enter"将创建换行符.就像你键入以下内容一样:

<TextBox x:
Run Code Online (Sandbox Code Playgroud)

当您从IntelliSense中选择"名称"属性时,它将为您提供以下内容:

<TextBox x:Name="_"
Run Code Online (Sandbox Code Playgroud)

_表示您当前的光标位置.

给Name一个值,比如文本框,然后按Enter.此时,我希望我的光标像这样跳到最后:

<TextBox x:Name="textbox"_ 
Run Code Online (Sandbox Code Playgroud)

但它会像这样创建一个换行符:

 <TextBox x:Name="textbox
          _"
Run Code Online (Sandbox Code Playgroud)

这种行为让我烦恼.而不是按Enter,而是按下End键.

我如何得到我的预期行为?

PS:我是WPF和XAML的新手.

intellisense xaml editor visual-studio-2010

14
推荐指数
2
解决办法
2038
查看次数

使用Process实时控制台输出重定向

我正在使用VBOXMANAGE"导出"客户机.VBOXManage是一个控制台应用程序,可以控制来宾主机的来宾行为.由于export命令是一个很长的进程,它会返回进程更新,如下所示:

0%... 10%... 20%... 30%... 100%

我正在编写一个C#应用程序,它将使用Process调用VBOXManage.这是我的代码:

Process VBOXProc = new Process();

VBOXProc.StartInfo.FileName = VBOXMANAGE;
VBOXProc.StartInfo.Arguments = Arguments;
VBOXProc.StartInfo.UseShellExecute = false;
VBOXProc.StartInfo.CreateNoWindow = true;
VBOXProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
VBOXProc.StartInfo.RedirectStandardError = true;
VBOXProc.StartInfo.RedirectStandardOutput = true;

VBOXProc.OutputDataReceived += new DataReceivedEventHandler(VBOXProc_OutputDataReceived);
VBOXProc.ErrorDataReceived += new DataReceivedEventHandler(VBOXProc_ErrorDataReceived);

VBOXProc.EnableRaisingEvents = true;

VBOXProc.Start();
VBOXProc.BeginOutputReadLine();
VBOXProc.BeginErrorReadLine();

VBOXProc.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

这很好,除了每个LINE读取输出.这意味着过程更新"0%... 10%... 20%... 30%... 100%"仅在实际过程完成后显示.

有没有办法实时捕获控制台输出?

谢谢!

c# process console-redirect

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

满足开放/封闭原则的工厂模式?

我有以下具体Animal产品:DogCat.

我正在使用参数化的Factory方法来创建所述产品.根据AnimalInfo传递给Factory方法的参数,将创建具体产品.映射逻辑放在Factory方法中.

这是我的代码:

 public abstract class AnimalInfo
    {
        public abstract String Sound { get; }
    }

    public class DogInfo : AnimalInfo
    {
        public override string Sound
        {
            get { return "Bark"; }
        }
    }

    public class CatInfo : AnimalInfo
    {
        public override string Sound
        {
            get { return "Meow"; }
        }
    }

    public abstract class Animal
    {
        public abstract void Talk();
    }

    public class Dog : Animal
    {
        private readonly …
Run Code Online (Sandbox Code Playgroud)

c# reflection anti-patterns factory-pattern

12
推荐指数
2
解决办法
4645
查看次数

我想学习COM.我该怎么办?

我是一名刚毕业的计算机科学学士.就像今天的大多数学校一样,他们不再教学生C或推进C++(只有C++的入门课程......有教学指针).课程中规定的标准编程语言是C#(.NET堆栈).

就在最近,我被聘为初级软件开发人员.95%的代码库都是用C++编写的,我们的产品使用的是COM/DCOM.另外5%是在.NET中.我目前的职责是维护一个用.NET(ASP.NET)编写的项目,我不需要学习C++和其他技术YET.但我想尽快学习COM,以便我可以帮助其他项目.

所以我正在寻求这个社区的建议,我将如何学习COM.我目前的问题如下:

  1. 任何所需的阅读?(必备主题)
  2. 学习COM基础知识的好网站?
  3. 一种简单程序,真正体会COM的"目的"(也许是一个聊天程序?)

谢谢!:)

PS:我应该将其标记为社区维基吗?

c++ com

11
推荐指数
4
解决办法
4390
查看次数

HKLM\Software下的OpenSubKey返回null

这是我的代码:

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\ADM");
Run Code Online (Sandbox Code Playgroud)

注册表项存在于计算机上.key始终为null.

我不认为这是一个安全问题.我是以管理员身份运行的.(我甚至在管理员模式下明确地运行了程序集).

我正在使用在Windows 7 64位上运行的Visual Studio 2010.

c# registry

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

通过引用传递:哪个更具可读性/更正确?

我有以下课程:

public class Person
{
     public String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个接受的方法Person和一个Stringas参数:

public void ChangeName(Person p, String name)
{
     p.Name = name;
}
Run Code Online (Sandbox Code Playgroud)

由于Person通过引用传递,它应该更改Name传递的实例.

但这种方法比上面的方法更具可读性吗?

public Person ChangeName(Person p, String name)
{
     p.Name = name;
     return p;
}
Run Code Online (Sandbox Code Playgroud)

c# coding-style design-guidelines

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