小编Mik*_*din的帖子

Open Generic类型不会在目录中注册

我们正在使用.NET 4.5,直到一个月前突然停止工作时,MEF中的开放式通用导出没有问题.我们的CI服务器上的70个测试变为红色,我们将其追溯到容器中缺少的部分.

我发现它很奇怪,所以我写了这个测试代码:

var catalog = new TypeCatalog(typeof(Impersonator<>), typeof(Cache<>));
var parts = catalog.Parts;
Run Code Online (Sandbox Code Playgroud)

但看起来没有任何开放的泛型类型会在目录中注册. PartsTypeCatalogTypes = <Empty>.

通常我们通过使用属性的声明性导出来解决这个问题,但是这些替代方案似乎都没有了.

任何想法都将受到最高的赞赏.

c# mef

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

适用于.NET的浏览器模拟器API

我正在寻找一个很好的.NET浏览器模拟器API.我一直在看WatiN,但我真的不需要(想要!)GUI,我只想要HTML/DOM解析,JavaScript运行时以及状态,缓存和其他所有的模拟.

我正在寻找的东西会像这样工作

using (var browser = Browser.Create(BrowserType.Firefox))
{
  // Download all page resources and executes JS
  var page = browser.Open("http://localhost:8080");

  // Lookup <a id="nextButton" href="#" /> and trigger click event
  page.Find("nextButton").Click();
}
Run Code Online (Sandbox Code Playgroud)

你有没有遇到过类似的东西?谢谢!

.net c# browser emulation

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

来自Rails Heroku的Facebook Open Graph

我整天都在解决这个问题,可能真的需要一些投入.

我有一个在Heroku Cedar上运行的Rails应用程序(3.1.3),尝试使用gem fb_graph(2.4.0)发布一些Facebook Open Graph操作.

这是我的代码.

begin
    app = FbGraph::Application.new(ENV['facebook_app_id'])
    me = FbGraph::User.me(user.facebook_access_token)

    logger.info "Facebook: User #{user.name} reviewing game #{game_url(review.game)}"

    action = me.og_action!(
        app.og_action(:review),
        :game => game_url(review.game),
        :content => review.review,
        :rating => review.rating
    )
rescue Exception => exc
    logger.error "Failed to publish review #{review.id} to facebook #{user.facebook_auth}"
    logger.error "Facebook error msg: #{exc.message}"
end
Run Code Online (Sandbox Code Playgroud)

如果我转到我的应用程序中将尝试运行此代码的页面,它将失败并显示以下消息.

FbGraph::InvalidRequest (Exception :: Could not retrieve data from URL.)
Run Code Online (Sandbox Code Playgroud)

但是,如果我在哪里打开一个Heroku控制台,heroku run console并手动输入代码,它就完美无缺.

我的第一个想法是应该game_url(review.game)归咎于哪里,但在添加日志消息后,我确信它会返回正确的URL.并且,因为当我通过heroku控制台手动运行它时整个工作正常,它确认了URL可访问并传递所请求的数据.

任何反馈或经验都非常感谢.

ruby ruby-on-rails heroku facebook-graph-api

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

使用类型实例调用泛型函数

我已经为这个问题苦苦挣扎了很长一段时间,似乎找不到任何解决方案。让我为您简化一下。

我有一个想要调用的通用函数,但我只想将其类型参数作为实例来调用。例子

let foo_a<'a> () = typeof<'a>
let foo_b (t : System.Type) = foo_a<t>() // of course this does not work
Run Code Online (Sandbox Code Playgroud)

我希望以下陈述属实

foo_a<int>() = foo_b(typeof<int>)
Run Code Online (Sandbox Code Playgroud)

在 C# 中,我会反映 foo_a 的 MethodInfo 并执行 MakeGenericMethod(t),但在 F# 中如何执行此操作?

只是为了澄清,翻转依赖关系并让 foo_a 调用 foo_b 来代替,对我来说不是一个选择。

generics f#

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

在Windows 2008 Server上通过TFS进行WatiN

我试图通过持续构建TFS来运行WatiN测试,但我无法让它工作.我得到的错误是:

WatiN.Core.Exceptions.IENotFoundException : Could not find an IE window matching constraint: Timeout while waiting to attach to newly created instance of IE.. Search expired after '30' seconds.
     at WatiN.Core.IE.CreateIEPartiallyInitializedInNewProcess()
     at WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess)
     at WatiN.Core.IE..ctor(String url, Boolean createInNewProcess)
Run Code Online (Sandbox Code Playgroud)

我读过这可能是原因

  • 对于"localhost"的请求将默认解析为:: 1的IPv6地址,而不是IPv4地址127.0.0.1,WatiN测试将失败.

情况并非如此,因为我正在测试不在本地计算机上的公共URL.

  • IE增强安全配置已打开

我没有任何结果就关掉了.

  • 缺少文件Microsoft.mshtml.dll,Interop.shdocvw.dll或Watin.Core.dll

检查并仔细检查!我在输出目录中有运行测试的那些.

最后和最后的测试是以运行构建的用户身份登录并执行NUnit测试套件并手动运行测试.

C:\Users\TFSSERVICE>"C:\Program Files\Nunit 2.5.2\bin\net-2.0\nunit-console.exe"
 /nologo C:\Users\BUILDSERVICE\AppData\Local\Temp\\Continuous\Binaries\Release
\\WebTests.dll
Run Code Online (Sandbox Code Playgroud)

你猜怎么着!它可以像tfs构建用户一样手动执行它们.那么,我在这里错过了什么?有什么想法为什么它在我运行msbuild引擎时只是保持超时?

欢迎任何想法!的Mikael

.net c# tfs watin windows-server-2008

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