我们正在使用.NET 4.5,直到一个月前突然停止工作时,MEF中的开放式通用导出没有问题.我们的CI服务器上的70个测试变为红色,我们将其追溯到容器中缺少的部分.
我发现它很奇怪,所以我写了这个测试代码:
var catalog = new TypeCatalog(typeof(Impersonator<>), typeof(Cache<>));
var parts = catalog.Parts;
Run Code Online (Sandbox Code Playgroud)
但看起来没有任何开放的泛型类型会在目录中注册. Parts是TypeCatalog用Types = <Empty>.
通常我们通过使用属性的声明性导出来解决这个问题,但是这些替代方案似乎都没有了.
任何想法都将受到最高的赞赏.
我正在寻找一个很好的.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)
你有没有遇到过类似的东西?谢谢!
我整天都在解决这个问题,可能真的需要一些投入.
我有一个在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可访问并传递所请求的数据.
任何反馈或经验都非常感谢.
我已经为这个问题苦苦挣扎了很长一段时间,似乎找不到任何解决方案。让我为您简化一下。
我有一个想要调用的通用函数,但我只想将其类型参数作为实例来调用。例子
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 来代替,对我来说不是一个选择。
我试图通过持续构建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)
我读过这可能是原因
情况并非如此,因为我正在测试不在本地计算机上的公共URL.
我没有任何结果就关掉了.
检查并仔细检查!我在输出目录中有运行测试的那些.
最后和最后的测试是以运行构建的用户身份登录并执行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