小编zum*_*ard的帖子

如何将Windows应用程序与特定文件类型相关联,但与其他应用程序共享该关联?

如果我创建一个新的应用程序,并与特定计算机上的.xml文件扩展名相关联,当有人双击.xml文件时,它将启动我的应用程序并将该文件作为参数传递.但Windows似乎知道其他文件能够使用该文件类型.这是怎么设置的?

此外,当我将Microsoft Word文件另存为.xml文件时,稍后双击该文件,它将启动Microsoft Word,即使.xml文件类型与其他内容相关联,例如Internet Explorer.似乎可能存在与.xml文件类型相关联的存根,在调用时会查看内容并启动相应的应用程序.

有没有Windows API,或某种标准方式来做到这一点?

我想创建一个应用程序来完成Word正在做的事情 - 即以.xml格式保存文件,但双击时,启动我的应用程序而不是Internet Explorer.

xml windows file-extension file-association

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

在C#中,一个方法可以返回List,这样客户端只能读取它,而不能写入它吗?

假设我有一个C#类:

class Foo
{
    private List<Bar> _barList;
    List<Bar> GetBarList() { return _barList; }
...
}
Run Code Online (Sandbox Code Playgroud)

客户可以调用它:

var barList = foo.GetBarList();
barList.Add( ... );
Run Code Online (Sandbox Code Playgroud)

有没有办法让Add方法失败,因为只_barList返回只读版本?

c# encapsulation const readonly immutability

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

为什么没有C#相当于python的doctest功能?

似乎这是一个介绍一些人进行单元测试的好方法.

.net c# python doctest unit-testing

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

如何使用 Moq 模拟具有两个索引的索引属性

这个问题清楚地展示了如何使用 MOQ 模拟索引属性:How to Moq Setting an Indexed property

但是,如果您有两个索引怎么办?

例如,假设您有一个 _Worksheet 对象(来自 vsto)

        var mockWorksheet = new Mock<_Worksheet>();
Run Code Online (Sandbox Code Playgroud)

您想创建一个名为 Cells 的属性,以便您可以像这样使用它:

        var range = worksheet.Cells[1,1];
Run Code Online (Sandbox Code Playgroud)

注意:范围可以是另一个模拟,可以用以下方法模拟: var mockRange = new Mock();

有什么建议?

.net excel vsto moq mocking

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

如何读取和写入C#字符串到文件?

我有一个Dictionary对象,我想写入磁盘,并能够从磁盘读取它.理想情况下,我会避免任何第三方库.使用常规C#4有一种简单的方法吗?

答案接受了.

摘要:

选项1 - 使用JavaScriptSerializer

优点:不需要第三方图书馆.此外,使用更现代的格式,即JSON

缺点:难以阅读 - 没有形成.此外,确实需要引用不太常用的System.Web.Extension程序集,即使应用程序与Web无关.

解:

写:

File.WriteAllText("SomeFile.Txt", new JavaScriptSerializer().Serialize(dictionary));
Run Code Online (Sandbox Code Playgroud)

读:

var dictionary = new JavaScriptSerializer()
    .Deserialize<Dictionary<string, string>>(File.ReadAllText("SomeFile.txt"));
Run Code Online (Sandbox Code Playgroud)

选项2 - 使用Linq到Xml

优点:不需要第三方图书馆.通常不需要添加其他引用.易于阅读.

缺点: XML不像更现代的JSON那样优先.

写:

new XElement("root", d.Select(kv => new XElement(kv.Key, kv.Value)))
            .Save(filename, SaveOptions.OmitDuplicateNamespaces);
Run Code Online (Sandbox Code Playgroud)

读:

var dictionary = XElement.Parse(File.ReadAllText(filename))
                .Elements()
                .ToDictionary(k => k.Name.ToString(), v => v.Value.ToString());
Run Code Online (Sandbox Code Playgroud)

选项3 - 使用JSON.NET

优点:人类可读.现代格式.

缺点:必要的第三方图书馆.

解:

写:

File.WriteAllText("SomeFile.Txt", JsonConvert.SerializeObject(dictionary));
Run Code Online (Sandbox Code Playgroud)

读:

var dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>
    (File.ReadAllText("SomeFile.txt"));
Run Code Online (Sandbox Code Playgroud)

c# serialization dictionary file

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

如何启用Visual Studio项目的TypeScript选项卡,该项目是自托管Web页面的控制台或Windows服务

使用Visual Studio 2015我创建了一个控制台应用程序,用于自托管Owin和嵌入式静态文件.由于Visual Studio不知道它是一个网站项目,它忽略了TypeScript文件.当我转到项目属性时,通常缺少Web项目中的TypeScript选项卡.

如何启用TypeScript选项卡以便我可以配置TypeScript并使用Visual Studio 2015的内置功能来编译TypeScript.

self-hosting typescript owin visual-studio-2015

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

如何在 Windows 上使用 C# 获取 chrome.exe 的路径?

我想从我的自动化测试框架启动 chrome,以便我可以测试我的服务器端 ASP.NET 代码。确定 chrome.exe 在我的计算机上的位置的最佳方法是什么?

c# asp.net google-chrome

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

运行时如何自动批准批准测试?

我正在使用ApprovalTests.Net.我看到我可以指定各种报告.我想在运行单元测试时自动批准测试.我只需要暂时执行此操作,或者在代码经历重大更改时执行此操作.在使用ApprovalResults.ForScenario创建数据驱动的ApprovalTests时,这尤其有用.

有没有办法做到这一点?

approval-tests

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

有没有什么简单的方法可以使用 Visual Studio 2013 压缩我的源代码?

在尝试创建新的 Visual Studio 项目以尝试各种技术或周末项目时,我想要一种简单的方法来压缩我的源代码,而不必担心 .pdb、obj/bin 文件等。

多年前,我想出了一组 .bat 文件,其中一个是: zipall.bat看起来像这样:

del all.zip
pkzip -add -excl=Backup\* -path -rec all
Run Code Online (Sandbox Code Playgroud)

在运行它之前,我会运行另一个批处理文件: clean.bat,看起来像这样:

del/f/s/q *.aps        2>nul
del/f/s/q *.bsc        2>nul
del/f/s/q *.exp        2>nul
del/f/s/q *.idb        2>nul
del/f/s/q *.ilk        2>nul
del/f/s/q *.lib        2>nul
del/f/s/q *.ncb        2>nul
del/f/s/q *.obj        2>nul
del/f/s/q *.opt        2>nul
del/f/s/q *.pch        2>nul
del/f/s/q *.pdb        2>nul
del/f/s/q *.plg        2>nul
del/f/s/q *.sbr        2>nul
del/f/s/q *.suo        2>nul
del/f/s/q *.sdf        2>nul

del/f/s/q /ah *.suo        2>nul

del/f/s/q BuildLog.htm    2>nul

for /f "delims=;" %%i in ('dir …
Run Code Online (Sandbox Code Playgroud)

git zip visual-studio-2013 pkzip

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

使用Subversion,您如何判断特定硬盘驱动器文件夹中的所有文件是否已经签入并提交到存储库?

使用Source Safe,在将文件添加到Source Control后,它们在本地设置为只读.那么如果我去Explorer并检查内容,我可以快速查看哪些文件没有进入源代码控制,因为它们仍然是可读写的.

使用SVN,该软件在签入后不会将本地文件标记为只读,这很好,但是当最初向SVN添加未知的Visual Studio项目时,Visual Studio显然只添加其解决方案中的那些文件.某些支持文件(如文档等)可能位于源文件夹中,但未作为Visual Studio中的项添加,因此Visual Studio不会添加这些文件.我将不得不手动添加它们,或者我可以将这些文件添加到Visual Studio的解决方案中,并让Visual Studio执行此操作.但无论哪种方式,我仍然需要一种方法来确定哪些文件没有添加.

我尝试了锁定功能,但这对文件的本地只读标志没有任何影响.

svn version-control

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

如何启动 64 位 PowerShell 进程,无论是从 32 位进程还是 64 位进程启动?

我需要能够启动 64 位版本的 PowerShell.exe 我通过检查 [system.intptr]::size 的值是否为 8 来验证我是否处于 64 位版本。

powershell

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