小编Dav*_*rno的帖子

如何克服"无法遵循符号链接,因为其类型已禁用".获取符号链接的目标时出错?

继上一个问题之后,我正在使用UNC路径从Vista机器上创建Server 2008上的符号链接.我可以创建链接就好了.我可以转到Server 2008框并双击资源管理器中的链接以打开目标文件.但我不能做的是使用FileCreateW来获取UNC路径链接的句柄(来自Vista框).当我尝试它时,它失败并且GetLastError()返回错误代码1463(0x5B7),这是:

无法遵循符号链接,因为其类型已禁用.

如何在Server 2008中启用其"类型"(假设错误意味着它所说的)?

symlink windows-server-2008

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

是否存在明确的设计模式列表?

设计模式的概念来自哪里,谁决定什么是什么,不是模式,给他们起名字?是否有一个官方组织定义它们,或者它们是否通过一些社区共识存在?

design-patterns

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

Ruby对GUI开发有什么好处吗?

我正在考虑创建一个基于GUI的工具,我想要跨平台.我已经解雇了Java,因为我个人不喜欢Swing.我正在考虑使用C#并使用Mono来实现跨平台.但是我想知道像Ruby这样的新型跨平台语言能否为我提供一个不错的GUI开发环境.

ruby user-interface cross-platform

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

我在网站上使用OpenID作为身份验证方法是否存在任何安全风险?

的OpenID认证用户的安全方法的网站上?

如果没有,与OpenID相关的安全风险是什么?

security openid

21
推荐指数
3
解决办法
2953
查看次数

C#7模式与元组匹配

是否可以使用c#7在switch语句中使用模式匹配的元组,如下所示:

switch (parameter)
{
   case ((object, object)) tObj when tObj.Item1 == "ABC":
        break;
}
Run Code Online (Sandbox Code Playgroud)

我得到一个错误说tObj does not exist in the current context.

我也试过这个:

switch (parameter)
{
   case (object, object) tObj when tObj.Item1 == "ABC":
        break;
}
Run Code Online (Sandbox Code Playgroud)

这很好用:

switch (parameter)
{
   case MachineModel model when model.Id == "123":
        break;
}
Run Code Online (Sandbox Code Playgroud)

c# pattern-matching switch-statement c#-7.0

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

如何以编程方式访问Windows符号链接的目标路径?

Windows 6(Vista和Server 2008)支持正确的符号链接,可以通过CreateSymbolicLink函数创建.但似乎没有相应的函数来询问符号链接以获得链接目标的路径.

我发现符号链接是重新分析点的实现,因此重新分析点函数可用于获取目标路径.但我需要使用重新分析点的头文件似乎与Windows驱动程序工具包一起提供.使用VS2008设置此套件似乎是一项非常重要的任务.

有没有一个很好的简单函数,我错过了获取链接的目标,或者我是否真的必须设置一个Windows驱动程序开发环境只是为了编写代码来访问这些信息?

编辑:Adam Mitz提出了GetFinalPathNameByHandle的建议.此函数适用于本地符号链接,但似乎不适用于解析远程链接(通过UNC路径).

编辑2:在亚当的要求下,这里有更多关于我尝试过的细节:

我最初走了FSCTL_GET_REPARSE_POINT/ DeviceIoControl路线,但这产生了一个REPARSE_DATA_BUFFER结构.定义此结构的标头似乎仅存在于Windows驱动程序工具包中.

GetFinalPathNameByHandle()当链接存在于本地磁盘(C:\...\link等)上时工作正常.奇怪的是,我发现我可以获取链接的句柄 - 从而获得目标 - 使用CreateFileW()是否FILE_FLAG_OPEN_REPARSE_POINT指定了标志,无论目标文件是否存在.

CreateFileW()GetFinalPathNameByHandle()(\\?\UNC\....)用于通过()询问远程链接时,事情开始解开.如果FILE_FLAG_OPEN_REPARSE_POINT指定,则GetFinalPathNameByHandle()始终返回链接路径,而不是目标路径.如果FILE_FLAG_OPEN_REPARSE_POINT未指定,则返回目标路径,但仅当目标存在且与链接位于同一台计算机上时才返回.如果链接指向另一台计算机,则会收到网络权限错误.如果链接指向本地 - 不存在 - 文件,我得到一个文件未找到错误.

windows symlink visual-studio-2008

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

是否已建立ISomething/ISomethingable接口的替代方案?

使用I为接口名称添加前缀的.NET标准似乎正在变得普及,并且不再仅限于.NET.我遇到了很多使用这种约定的Java代码(因此,如果Java在C#之前使用它,它就不会让我感到惊讶).Flex也使用它,依此类推.虽然在名字的开头放置一个I有点匈牙利符号,所以我对使用它感到不舒服.

所以问题是,是否存在一种表示Something是接口而不是类的替代方式,无论如何都需要表示它.或者它是否成为一个标准,所以我应该接受它并停止通过建议以不同的方式做出"宗教战争"?

interface naming-conventions

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

接口的扩展方法是否被视为优先级低于特定的扩展方法?

我有以下扩展类:

public static class MatcherExtensions
{
    public static ExecMatcher<T1, T2> Match<T1, T2>(this Tuple<T1, T2> item)
    {
        return new ExecMatcher<T1, T2>(item.Item1, item.Item2);
    }

    public static ExecMatcher<T1, T2> Match<T1, T2>(this ITupleMatchable<T1, T2> item)
    {
        var tuple = item.PropertiesToMatch;
        return new ExecMatcher<T1, T2>(tuple.Item1, tuple.Item2);
    }

    public static ExecMatcher<T> Match<T>(this T item) { return new ExecMatcher<T>(item); }
}
Run Code Online (Sandbox Code Playgroud)

如果我创建一个元组并调用Match()它,它正确使用第一个扩展方法:

var tuple = Tuple.Create(1, "a");
tuple.Match().With(1, "a")...   // compiles just fine.
Run Code Online (Sandbox Code Playgroud)

如果我创建一个int并调用Match()它,它正确使用最后一个扩展方法:

var one = 1;
one.Match().With(1)... // compiles just fine. …
Run Code Online (Sandbox Code Playgroud)

c#

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

是否有跨语言的TDD解决方案?

我想在C#,Java和AS3中编写一个简单的颜色管理框架.我只想编写一次单元测试,而不是在JUnit,FlexUnit和NUnit中重新创建单元测试.

我想到了一个xml文件的想法,该文件通过setup,teardown和set tests来定义基于"实例"状态的"实例"和断言的操作.然后有一个实用程序可以将该XML转换为xUnit代码,用于任意数量的xUnits.在我开始浪费时间开发这样的解决方案之前,我想确保没有类似的解决方案已经存在.

tdd unit-testing cross-language

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

如何在Windows Vista中创建符号链接?

我希望在Windows Vista/2008计算机上从Java创建符号链接(软链接).我很高兴我需要呼吁JNI这样做.我虽然在实际的C代码上寻求帮助.创建链接的适当系统调用是什么?关于这个主题的一些好的文件的指针将非常感谢.

c c++ windows java-native-interface symlink

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