0

我正在构建一个库,其中包含很多我经常使用的各种代码的包装器。

我的图书馆代码:

public static void Create(string name, string location, List<string> commands)
{
    if (!Directory.Exists(location))
    {
        throw new DirectoryNotFoundException();
    }
    else
    {
        File.WriteAllLines(Path.Combine(location, name), commands);
    }
}

我使用库的示例应用程序

AwesomeFunction.Create("Foo", "C:\\DoesntExist\\Bar", new List<string> { "List of stuff" });

如果找不到给定的目录,它会抛出throw new DirectoryNotFoundException();有意义的行,但我需要它抛出AwesomeFunction.Create函数。

如果抛出,这将停止切换到库代码,而是突出显示AwesomeFunctionVS 中的行。

一个可比较的例子是在

Directory.Delete("C:\\DoesntExist\\Bar");

即使throwDirectory课堂上,它也会突出显示该行。

任何帮助表示赞赏。

编辑

如果我将库复制到不同的位置,即 C:\mylibrary,它仍然会打开它的源代码,即使我没有通过项目引用它。

我发现另一个问题是,当我不从我的项目中添加它时,我看不到我对函数的 XML 注释。

有任何想法吗?

4

1 回答 1

3

您可以通过使用程序集引用而不是库的项目引用来实现这一点。这样,您将不会在使用项目中获得库的源代码,并且 VS 将在AwesomeFunction.Create函数调用时中断。Directory.Delete这就是在您提供的调用中引发异常时发生的情况。由于您没有链接此方法的源代码,VS 只是停在这一行上,而不是在引发异常的该方法内的实际行上。显然,在异常堆栈跟踪中,您可以获得完整的方法调用堆栈和异常的来源。

于 2012-06-25T14:06:59.680 回答