小编Nei*_*ilD的帖子

使用来自外部JS文件的Google Analytics异步代码

我正在尝试将异步版Google Analytics跟踪代码添加到网站中.

我想将JavaScript保存在一个单独的文件中,并从那里调用它.

这是我目前在.js文件中得到的内容:

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function loadtracking() {
    var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
        _gaq.push(['_trackPageview']);

        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();
}

addLoadEvent(loadtracking);
Run Code Online (Sandbox Code Playgroud)

这就是我在<head>母版页面标签中的内容:

<script …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous google-analytics unobtrusive-javascript

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

IEnumerable - 返回元素两侧范围内的项目

我需要从IEnumerable中获取一个元素,然后返回自身以及两侧的一系列元素.

所以,像这样:

var enumerable = new[] {54, 107, 24, 223, 134, 65, 36, 7342, 812, 96, 106};
var rangeSize = 2;
var range = enumerable.MySelectRange(x => x == 134, rangeSize);
Run Code Online (Sandbox Code Playgroud)

会返回类似的东西{ 24, 223, 134, 65, 36 }.

(该项目使用.Net 3.5)

编辑 好的,人们似乎被挂起了一堆整体.我已经改变了这个例子,希望能让我更清楚自己追求的是什么.

请记住,这不一定是一个IEnumerable<int>,但实际上是一个IEnumerable<TSomething>.

c# linq ienumerable

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

从源代码管理中排除嵌套项

我正在使用T4模板在我正在处理的项目中生成一些.config文件.

我已经设置了一个预构建任务来查找解决方案目录中的所有.tt文件,然后执行TextTransform命令行工具,以便在每个构建时新生成代码.

但是,我现在有"拒绝访问"错误,因为(例如)当它尝试在Web.UAT.tt文件上执行TextTransform时,Web.UAT.Config文件在TFS中的源代码控制下,因此写入保护.

通常我会在Visual Studio中选择.Config文件,然后执行File-> Source Control-> Exclude From Source Control.不幸的是,对于任何在另一个文件下显示为"嵌套"的文件,这似乎不是一个选项!

即我可以排除web.tt,但不能排除web.config ...我可以排除default.aspx但不能排除default.aspx.cs.

有没有人对如何从源代码管理中排除较低级别的嵌套文件有任何想法,但保持顶级的?

谢谢!

version-control tfs t4 visual-studio-2008

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

Powershell - 删除除特定子目录中的项目之外的所有项目

我有一个包含大量子目录和文件的目录.我需要删除除SubFolder1下的所有文件.

Initial State:                       Desired Output:

\                                    \
|_Folder1                            |_Folder1
| |_File1.txt                          |_SubFolder1
| |_File2.xml                            |_File3.csv
| |_SubFolder1                           |_File4.exe
| | |_File3.csv
| | |_File4.exe
| |_Subfolder2
|_Folder2
| |_ <more files here>
|_Folder3 (etc)
Run Code Online (Sandbox Code Playgroud)

所以这就是我尝试过的:

Remove-Item * -exclude Folder1\Subfolder1\*
Run Code Online (Sandbox Code Playgroud)

我收到这样的警告:

Confirm
The item at C:\foo\Folder1 has children and the -recurse parameter was not specified. 
If you continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No …
Run Code Online (Sandbox Code Playgroud)

powershell

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

在 Visual Studio 中更新 Web 参考

我继承了一个网站项目,该项目使用 BizTalk 服务器上托管的许多 WCF Web 服务。我需要将此项目部署到两个环境,不同的 BizTalk 服务器具有不同的 URL。

即在登台环境中,我需要将服务指向xx.xx.xx.101
在实时环境中,我需要将它们指向xx.xx.xx.102,或者其他。

目前,我们已将所有 URL 存储在 web.config 文件的键中,以便我们可以动态更改它们。不幸的是这不起作用。

如果我将 web.config 中的 URL 更改为项目编译时使用的其他 URL,则在调用服务时会收到错误消息:

服务器无法识别 HTTP 标头 SOAPAction 的值:xx.xx.xx.101\ServiceName\MethodName

我被告知,他们知道部署此功能的唯一方法是更新 web.config URL,更改 Visual Studio 中的所有 Web 引用以匹配,单击 Visual Studio 中每个引用的“更新 Web 引用”,然后编译。

我编写了一个预构建 NAnt 脚本来遍历并替换在项目目录中任何位置找到的 URL 的所有实例,即使这样也没有任何区别。

当我单击“更新参考”时,必须从服务中删除其他内容,但我不确定是什么。

有人有什么想法吗?有没有办法以编程方式执行此操作?

c# wcf biztalk web-services

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

XmlSerializer - 反序列化枚举时如何设置默认值?

我有一个看起来像这样的类(大大简化):

public class Foo
{
    public enum Value
    {
        ValueOne,
        ValueTwo
    }

    [XmlAttribute]
    public Value Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我从外部源接收 XML 文件。他们的文档指出,Foo 元素的 Bar 属性中只会有“ValueOne”或“ValueTwo”(他们不提供 XSD)。

所以,我像这样反序列化它:

 var serializer = new XmlSerializer(typeof(Foo));
 var xml = "<Foo Bar=\"ValueTwo\" />";
 var reader = new StringReader(xml);

 var foo = (Foo)serializer.Deserialize(reader);
Run Code Online (Sandbox Code Playgroud)

...这一切都有效。

然而,昨晚,他们向我发送了一些如下所示的 XML 而我的反序列化失败了(理应如此):<Foo Bar="" />

有没有一种好的方法可以围绕这个进行防御性编码?理想情况下,我想说“如果这里出现问题,默认为 ValueOne”。我不想丢弃整个 XML 文件,因为单个属性被破坏了。

c# defensive-programming xml-serialization xmlserializer

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

我可以将VaryByCustom与Sitecore 7控制器渲染一起使用吗?

我有一个Sitecore 7控制器渲染.我需要通过自定义方法改变OutputCache.

渲染当前在Sitecore中设置为"Cachable","VaryByData"和"VaryByParm".

我已经为我的操作添加了输出缓存属性,并设置了自定义变量字符串:

[OutputCache(VaryByCustom = "ThisIsATest", Duration = 60)]
public ActionResult Index()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的Global.asax继承自Sitecore.Web.Application,我已经重写了GetVaryByCustomString,如下所示:

public override string GetVaryByCustomString(HttpContext context, string custom)
{
    if (custom == "ThisIsATest")
        return "some custom key";
    return base.GetVaryByCustomString(context, custom);
}
Run Code Online (Sandbox Code Playgroud)

我从来没有看到过GetVaryByCustomString方法,并且控制器的行为似乎根本就没有OutputCache属性......就好像它实际上只是做了默认的"Cachable","VaryByData"," VaryByParm"来自Sitecore的行为.

有线索吗?

c# outputcache sitecore sitecore7

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

StructureMap和Generics - 如何指定默认构造函数?

我有一个通用的界面:

public interface IRepository<T> { ... }
Run Code Online (Sandbox Code Playgroud)

我有这样的实现:

public class Repository<T> {
    public Repository<T>() { ... }
}
Run Code Online (Sandbox Code Playgroud)

StructureMap(v 2.6.3)配置如下:

For(typeof(IRepository<>)).Use(typeof(Repository<>));
Run Code Online (Sandbox Code Playgroud)

当我尝试拉出IRepository<Something>StructureMap时,我得到了一个Repository<Something>预期的结果.万岁!

现在我添加了第二个构造函数,实现如下:

public class Repository<T> {
    public Repository<T>() { ... }
    public Repository<T>(string database) { ... }
} 
Run Code Online (Sandbox Code Playgroud)

当我尝试获得一个IRepository<Something>现在,我得到一个例外,因为它默认尝试使用带有参数的新构造函数.嘘!

如何更改我的StructureMap配置,以便它知道使用无参数构造函数?

c# structuremap generics inversion-of-control

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

ASP.Net从哪里获取其呈现的ID?

我继承了一个项目,其中包含一些依赖于硬编码对象ID的讨厌的JavaScript.
即有很多地方可以做这样的事情

var magazine = document.getElementById('repModuleDisplay__ctl3_chkCats_0');
Run Code Online (Sandbox Code Playgroud)

当页面在我的UAT环境中呈现时,HTML看起来像这样,一切正常.

<input id="repModuleDisplay__ctl3_chkCats_0" 
    type="checkbox" name="repModuleDisplay:_ctl3:chkCats:0"  
    ... etc
Run Code Online (Sandbox Code Playgroud)

但是,当我把它放在我的生产环境中时,HTML会突然像这样:

<input id="repModuleDisplay_ctl03_chkCats_0" 
    type="checkbox" name="repModuleDisplay$ctl03$chkCats$0" 
    ... etc
Run Code Online (Sandbox Code Playgroud)

ids的不同意味着JavaScript无法找到Element,并且失败了.

在一个理想的世界里,我会删除错误的JavaScript并再次正确地执行它,但是为了快速修复,我想知道是什么导致两个环境之间的渲染差异.

有没有人有任何想法?

谢谢,尼尔

javascript asp.net rendering

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

Facebook Graph API - 对于单个帖子,updated_time不正确

我已经构建了一个时间轴应用程序,使用图形API查询特定Facebook页面上的帖子.我使用帖子的updated_time在时间轴上按顺序排列.

我今天收到了一份错误报告,因为一个帖子一直移动到时间轴的前面.

看起来每当有人对此帖发表评论时,updated_time都会更改.奇怪的是,这似乎只是这一个墙柱的情况.所有其他人的created_time都与我期望的updated_time相同.对这些帖子发表评论不会将其"反弹"到时间轴的前面.

我将图API称为:https: //graph.facebook.com/somepagename/posts?method = GET&metadata = true&format = json&access_token = XXXXXXX

在JSON中,我得到一些看起来像这样的帖子:

{
 ...
   "created_time": "2011-10-05T11:47:20+0000",
   "updated_time": "2011-10-05T11:47:20+0000",
 ...
},
{
 ...
   "created_time": "2011-10-05T08:12:27+0000",
   "updated_time": "2011-10-05T11:57:35+0000", <--- PROBLEM!
 ...
},
{
 ...
   "created_time": "2011-10-04T12:52:39+0000",
   "updated_time": "2011-10-04T12:52:39+0000",
 ...
},
Run Code Online (Sandbox Code Playgroud)

这是Graph API中的一个错误,还是还有其他一些我不明白的问题?对于不同类型的墙贴(画廊更新,视频帖子,文本等),updated_time计算是否不同?

facebook facebook-graph-api posts

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