小编Sti*_*rez的帖子

如何获取正在执行的cmdlet的当前目录

这应该是一个简单的任务,但我已经看到了几次尝试如何获取执行cmdlet所在目录的路径,并取得了成功.例如,当我执行C:\temp\myscripts\mycmdlet.ps1哪个有设置文件时,C:\temp\myscripts\settings.xml我希望能够存储C:\temp\myscripts在一个变量中mycmdlet.ps1.

这是一个有效的解决方案(虽然有点麻烦):

$invocation = (Get-Variable MyInvocation).Value
$directorypath = Split-Path $invocation.MyCommand.Path
$settingspath = $directorypath + '\settings.xml'
Run Code Online (Sandbox Code Playgroud)

另一个人建议这个解决方案只适用于我们的测试环境:

$settingspath = '.\settings.xml'
Run Code Online (Sandbox Code Playgroud)

我非常喜欢后一种方法,并且更喜欢每次都必须将文件路径解析为参数,但我不能让它在我的开发环境中工作.有没有人建议做什么?它与PowerShell的配置方式有关吗?

powershell cmdlet

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

如何检查角度是否正确加载

假设我想从CDN引用angularjs,但我还想在CDN调用失败的情况下回退,例如指向本地js文件.说到JQuery,我看过一些例子,你可以在javascript中做这样的事情:

if(typeof jQuery == 'undefined') {
    ....
}
Run Code Online (Sandbox Code Playgroud)

我能做什么类似的angularjs?

angularjs

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

如何判断javascript库是否支持AMD

所以我开始学习如何使用requirejs并将其与其他一些可用的javascript库结合起来.据我所知,你需要填充所有非异步模块定义兼容的库(AMD),但除了通过库代码搜索"require"之外,还有一种更简单的方法可以找出哪些库支持AMD而哪些库不支持?作为一个例子我知道jquery支持AMD,但jqueryui没有,我只知道这是因为"有人告诉我".

javascript amd

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

为什么我被迫引用未使用的构造函数中的类型?

假设我有一个ClassA包含一个方法的class(),它调用另一个类的构造函数,如下所示:

public class ClassA
{
    public void CallClassBConstructor()
    {
        using(ClassB myB = new ClassB()) {...}
    }
}
Run Code Online (Sandbox Code Playgroud)

这个类ClassB看起来像这样:

public class ClassB : IDisposable
{
    public ClassB(){}
    public ClassB(string myString){}
    public ClassB(ClassC myC){}
    public void Dispose() {...}
}
Run Code Online (Sandbox Code Playgroud)

......而且ClassC更简单:

public class ClassC{}
Run Code Online (Sandbox Code Playgroud)

如果我将这些类放在他们自己的程序集中并编译整个解决方案,我不会得到任何错误.但是如果我用这个替换using语句:

using(ClassB myB = new ClassB("mystring")){...}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误,要求我添加对[mynamespace].ClassCin 的引用ClassA.因为我根本不打电话ClassB(ClassC myC)这对我没有意义 - 为什么我必须包括其他构造函数的类型,无论我是否使用它们?如果ClassC包含在许可或难以获取的程序集中会怎样?这是开发人员应该避免的错误设计的一个例子,还是我在这里遗漏了什么?

c# class-constructors

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

创建项目模板时更新 Visual Studio 2012 中的 IIS Express 端口

我知道标题似乎有点误导,但问题相当简单。

我刚刚在 Visual Studio 2012 Express for Web 中创建了一个新的 WebApplication 项目,添加了几个额外的文件并将该项目导出为新模板。在我开始从这个模板调试一个新的项目实例之前,一切似乎都运行良好。当我打开项目实例的属性窗口时,我注意到“Web”下的“项目 URL”设置指向http://localhost:50637端口号与我用来创建模板的项目相同的位置。显然我希望新的项目实例有自己的端口,我可以轻松地分配一个新的。但我的问题是 Visual Studio 在创建新项目实例时是否可以自动执行?我想我必须以某种方式为模板项目配置项目属性...

visual-studio

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

如何在单元测试中伪造SqlDataAdapter,SqlConnection和SqlCommand

我试图找出如何在我创建的类上运行单元测试以在数据库上执行查询但我一直在试图找出如何伪造所有依赖项的圈子中运行.我的类实现了IDisposable,如果打开则关闭SqlConnection.用于选择数据的典型方法(我有几个重载)如下所示:

public DataSet SelectData(string selectCommand)
    {
        if (!string.IsNullOrEmpty(selectCommand))
        {
            DataSet ds = new DataSet();
            ds.Locale = CultureInfo.InvariantCulture;
            SqlDataAdapter adapter = new SqlDataAdapter(selectCommand, Connection);
            adapter.Fill(ds);
            return ds;
        }
        throw new ArgumentException("SelectCommand was null or empty", "selectCommand");
    }
Run Code Online (Sandbox Code Playgroud)

请注意,SqlCommand构造函数中的Connection参数是一个属性,它返回此类实例的SqlConnection.显然我需要以某种方式伪造SqlDataAdapter,但这也意味着我必须伪造SqlCommand和SqlConnection使用.所有类都是密封的,所以我不能简单地创建一个从这些类继承的伪对象.创建数据库排序会破坏依赖注入的目的,所以我想避免这种情况.有没有人建议如何测试这种方法?

database unit-testing dependency-injection

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

如何使用带单引号的Linq聚合

我们假设我有一个字符串集合,如下所示:

IList<string> myList = new List<string>(){"one", "two", "three"};
Run Code Online (Sandbox Code Playgroud)

使用myList.Aggregate我希望最终得到"'one','two','three'"(包括单引号)

有人只有使用聚合函数才能做到这一点吗?我正在思考一些问题

myList.Aggregate((increment, seed) => string.Concat(increment, ", ", seed));
Run Code Online (Sandbox Code Playgroud)

但这只是解决方案的一半.

c# linq aggregate

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