小编psy*_*ych的帖子

从Angular组件动态加载外部javascript文件

我正在使用Angular 4和CLI创建一个Angular应用程序.我正在尝试将SkyScanner搜索小部件添加到我的一个组件中.

Skyscanner Widget示例

部分实现需要添加新的外部脚本:

<script src="https://widgets.skyscanner.net/widget-server/js/loader.js" async></script>
Run Code Online (Sandbox Code Playgroud)

我不确定引用此文件的正确方法.如果我将脚本添加到我的index.html文件中,除非执行整页刷新,否则不会加载窗口小部件.我假设脚本在加载时尝试操作DOM,并且脚本运行时元素不存在.

仅在加载包含Skyscanner窗口小部件的组件时加载脚本的正确方法是什么?

typescript skyscanner angular

39
推荐指数
5
解决办法
4万
查看次数

你如何只用某些ID更新NuGet包?

根据NuGet文档:

更新命令

将软件包更新到最新版本.此命令还会更新NuGet.exe本身.

用法 nuget update <packages.config|solution>

选项:

Id - 要更新的包ID.

这是说,该ID选项是包ID 小号更新.你如何提供多个身份证?

这有效:

NuGet.exe update "MySln.sln" -RepositoryPath "MyRepoPath" -id Ref1
Run Code Online (Sandbox Code Playgroud)

......但你怎么也使用Ref2?这失败了:

NuGet.exe update "MySln.sln" -RepositoryPath "MyRepoPath" -id Ref1,Ref2
Run Code Online (Sandbox Code Playgroud)

我试图更新一个包的子集,并防止需要大量的NuGet.exe调用.

nuget

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

如何正确实现IDisposable

在我作为开发人员的时候,我已经看到了很多C#代码,它试图通过将变量设置为null或者在类(例如DataSet)上调用Dispose()并在我自己的类Dispose()方法中帮助GC.一直在想是否需要在托管环境中实现它.

这个代码在设计模式中是浪费时间吗?

class MyClass : IDisposable 
{
    #region IDisposable Members

    public void Dispose() 
    {
        otherVariable = null;
        if (dataSet != null)
        {
            dataSet.Dispose();
        }
    }

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

c# idisposable

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

ReSharper PdbNavigator在符号服务器上找不到调试信息

我们有TeamCity设置来为内部组件创建NuGet包和符号源包.符号源包正确包含dll,pdb和源代码.

一旦TeamCity创建了包,它们就会发布到我们的NuGet/SymbolSource服务器.

在ReSharper中,我已将"外部源"配置为"导航到源".NuGet包已添加到项目中,但在导航到源时,ReSharper输出显示以下错误:

PdbNavigator:Downloader http://symbolserver/SymbolSource/WinDbg/pdb::: MyLib.dll :: 3A9F94B78ED243228DC8CB98D71483D615 - > Ok(cached)PdbNavigator:在MyLib的符号服务器上找不到调试信息,Version = 3.2.5123.12213,Culture = neutral,PublicKeyToken = 3111e51d1da2afdf

PDB正在成功撤销,但ReSharper无法进入消息来源.附加调试器后,源文件可以正确进入,所以我认为这是一个ReSharper配置问题.如何在符号文件中"导航到>来源"才能在ReSharper中工作?

更新:http: //youtrack.jetbrains.com/issue/RSRP-405000

resharper debug-symbols pdb-files nuget

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

无法在selenium webdriver中找到::之前的css选择器元素

我想测试复选框已选中或未选中状态.

这是复选框的html代码

<div classs="input-control checkbox">
<span class="check">
::before
</span>
</div>
Run Code Online (Sandbox Code Playgroud)

::before 是css选择器.

当我将鼠标悬停在复选框时,它会显示webelement as span.check::before

driver.FindElement(By.CssSelector("span.check::before"));
Run Code Online (Sandbox Code Playgroud)

抛出元素未找到异常.

任何帮助将受到高度赞赏.

c# css-selectors selenium-webdriver

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

使用每行键将DataTable转换为JSON

我认为以下将是一个非常常见的任务,并假设有一个简单的解决方案,但我找不到一个.

如果我有以下结构的数据表.

ID  Name    Active
ID1 John    TRUE
ID2 Bill    FALSE
Run Code Online (Sandbox Code Playgroud)

我想将其序列化为JSON对象,其中ID列是JSON对象中的节点,如:

[
    {
        "ID1": {
            "Name": "John",
            "Active": "True"
        },
        "ID2": {
            "Name": "Bill",
            "Active": "False"
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

我查看了JSON.NET但无法让它工作.编辑:我正在使用C#

c# datatable serialization json json.net

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

如何在运行时更改资源字典颜色

在XAML中:

<ResourceDictionary>
    <Color x:Key="BrushColor1">Red</Color>
    <Color x:Key="BrushColor2">Black</Color>

    <LinearGradientBrush x:Key="GradientBrush1" StartPoint="0,0.5" EndPoint="1,0.5">
        <GradientStop Color="{DynamicResource BrushColor2}" Offset="0" />
        <GradientStop Color="{DynamicResource BrushColor1}" Offset="1" />
    </LinearGradientBrush>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

在C#中:

    public void CreateTestRect()
    {
        Rectangle exampleRectangle = new Rectangle();
        exampleRectangle.Width = 150;
        exampleRectangle.Height = 150;
        exampleRectangle.StrokeThickness = 4;
        exampleRectangle.Margin = new Thickness(350);

        ResourceDictionary resources = this.Resources;
        resources["BrushColor1"] = Colors.Pink;
        resources["BrushColor2"] = Colors.RoyalBlue;
        Brush brush =(Brush)this.FindResource("GradientBrush1");

        exampleRectangle.Fill = brush;
        canvas.Children.Insert(0, exampleRectangle);
    }
Run Code Online (Sandbox Code Playgroud)

如何在C#中更改运行时中的那些Color元素.LinearGradientBrush应该动态更改?

我希望做这样的事情:

(Color)(this.FindResource("BrushColor1")) = Colors.Pink;
Run Code Online (Sandbox Code Playgroud)

但我失败了.

c# wpf

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

将参数传递给 Spring 中的自动装配构造函数

我有一个参数化的构造函数。如何使用其中的@Autowired注释?

下面是一个示例片段:

@Autowired
private MyImplClass myImplClass;
Run Code Online (Sandbox Code Playgroud)

我有一个参数化的构造函数,MyImplClass如下所示:

public class MyImplClass{

    WebDriver driver = new FireFoxDriver();

    public MyImplClass(WebDriver driver){
        this.driver = driver;
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要将驱动程序传递给MyImplClass. 如何使用@Autowired?

spring

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

是否可以在Sandcastle文档中包含自定义属性?

是否可以在Sandcastle文档中包含自定义属性?

例如,考虑这个c#方法:

public void ExampleMethod
(
   [Required] string input1,
   [DefaultValue("example")] string input2
)
Run Code Online (Sandbox Code Playgroud)

有没有办法让Sandcastle文档输出input1具有必需的属性?

c# sandcastle

5
推荐指数
0
解决办法
486
查看次数

我有在NUnit GUI和Resharper中传递的单元测试,但在Team City运行它们时失败

我有一个TeamCity服务器设置为构建多个解决方案,然后使用NUnit Test Runner在其中运行单元测试.

这已经好几个月了; 但是,使用我们的最新版本,我遇到以下错误:

SetUp方法失败.SetUp:System.IO.FileLoadException:无法加载文件或程序集'log4net,Version = 1.2.13.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

它只发生在整个系统中包含数百个测试的单个TestFixture中.使用ReSharper或NUnit GUI运行时,测试全部通过.

Nuget包在被测试的项目和测试项目本身中都被正确引用.由于只安装了一个版本的Log4Net,因此不需要运行时程序集绑定重定向.

是否有其他人有类似的问题,他们已经解决或任何想法可能是什么问题?为什么它在本地工作而不在服务器上工作,特别是考虑到先前传递的相同测试.

我本地计算机和TeamCity服务器上的NUnit版本是相同的.

teamcity nunit

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