我注意到一些案例,我看到过以下内容:
// /reducers/reducer1.js
export default function reducer1(state = {}, action){
// etc...
}
// /reducers/reducer2.js
export default function reducer2(state = {}, action){
// etc...
}
// /reducers/index.js
import { combineReducers } from 'redux';
import reducer1 from './reducer1';
import reducer2 from './reducer2';
export default combineReducers({
reducer1,
reducer2
})
// /store.js
import masterReducer from './reducers';
export default function makeStore(){
// etc...
}Run Code Online (Sandbox Code Playgroud)
注意我们调用的最后一个"文件" import masterReducer from './reducers'- 有些人似乎认为这应该default export从index.js文件中导入.
这实际上是规范的一部分吗?- 我的解释/问题是,这是许多人使用WebPack v1将import语句转换为CommonJS风格requires语句的结果?或者这将在WebPack v2中打破"官方" import/ …
我不打算实现Java"throws"关键字.有关throws关键字的优点及其未在C#中实现的原因的讨论,请参见http://www.artima.com/intv/handcuffsP.html.
但是,如果有办法创建如下所示的属性,我很好奇:
[ThrowsException( exceptionType = NullReferenceException )]
[ThrowsException( exceptionType = AuthenticationException )]
public void Login( Credentials credz )
{
// ... etc...
}
Run Code Online (Sandbox Code Playgroud)
这样 - 当调用一个用一个或多个ThrowsException属性修饰的方法时,所述方法抛出的异常类型(至少是由ThrowsException属性显式声明的异常)将在方法的文档中可见
这与Java"throws"关键字不同,因为它不需要调用者处理这些异常.这样做可能会引入重大更改,例如,在不处理版本更改引入的新异常的客户端应用程序中.
虽然可以使用:
/// <exception cref="member">description</exception>
Run Code Online (Sandbox Code Playgroud)
我使用属性的意图是,如果异常的名称已更改或异常不再存在,则项目不会编译.因此,如何记录引发异常,不是同一个问题.
更新:2013-05-23
我已经想出了一种通过使用属性而不使用插件来解决问题的方法.我将在本周末尝试解决这个问题,如果能按预期工作,我将很乐意发布解决方案.如果有人打我发布解决方案,我很乐意接受他们的回答.
因为直到星期一我都无法解决这个问题,如果你能打败我,我会提供赏金 - 一个可以接受的答案是:
我认为XML文档不能从ThrowsException属性反映异常,直到项目构建完成之后.
看到一个基于Resharper的解决方案(因为它在我工作的大多数开发工厂中都很常见)会很有趣,但是如果有一个解决方案仍然与第三方工具无关,那么它将不被接受.类似地,只能在Visual Studio中使用的解决方案可以通过依赖于Resharper的解决方案来接受,但如果有一个解决方案可以在其他IDE中工作,例如MonoDevelop(支持更多框架 - 甚至更好),则不会接受它.
我有一个散点图,我试图绘制一个应该直接出现在x轴上的参考点,但我正在创建y轴,如下所示:
// give ourselves some space
yMin = yMin * 0.9;
yMax = yMax * 1.1;
// set up y
var yValue = function (d) {
return d.price;
},
yScale = d3.scale.linear()
.domain([yMin, yMax])
.range([height, 0])
.nice(),
yAxis = d3.svg.axis()
.scale(yScale)
.orient("left");
Run Code Online (Sandbox Code Playgroud)
问题是我想直接在x轴上绘制参考点.如果我不使用.nice(),我可以很容易地绘制参考点,如下所示:
var reference = svg.append('g').attr("class", "grid-reference");
reference.append("circle").attr("id", "some-reference-value")
.attr("class", "dot")
.attr("r", 9)
.attr("cx", xScale(someReferenceValue))
.attr("cy", yScale(yMin))
.style("fill", "grey")
.style("opacity", 1);
Run Code Online (Sandbox Code Playgroud)
但是在使用.nice()时我似乎无法弄清楚如何做到这一点.有没有其他方法可以解决这个问题,比如以某种方式得到x轴线的y坐标?
我开始挖掘d3代码,看看我如何计算好的值,我理解代码,但再次计算值似乎很浪费,更不用说重复代码的不必要的维护 - 特别是考虑到我也有参考点我会需要沿y轴绘制,我使用对数刻度表示我的x轴(对数nice()函数不同于线性nice()函数,因此这意味着额外的重复代码和不必要的维护).
想法?
我已经阅读了SO和GitHub上有关此错误的所有相关问题,但它们似乎都没有解决这种情况.
当我运行以下代码时:
response = await axios.get('http://localhost:8082/panda, {
httpAgent: new http.Agent({ keepAlive: true, keepAliveMsecs: 10000 })
});
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
{ Error: socket hang up
at createHangUpError (_http_client.js:345:15)
at Socket.socketOnEnd (_http_client.js:437:23)
at emitNone (events.js:110:20)
at Socket.emit (events.js:207:7)
at endReadableNT (_stream_readable.js:1059:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9) code: 'ECONNRESET' }
{ Error: read ECONNRESET
at _errnoException (util.js:1019:11)
at TCP.onread (net.js:608:25)
code: 'ECONNRESET',
errno: 'ECONNRESET',
syscall: 'read',
etc...
Run Code Online (Sandbox Code Playgroud)
除了onread调用之外没有堆栈跟踪所以我不清楚如何获得除了ECONNRESET传递给onreadnet.js中的方法的错误代码(-54)之外的任何其他信息
每个请求都会出现此问题 - 它不是间歇性的.
一些观察:
我正在尝试编写一些代码来查找任何给定方法的所有方法调用,因为我正在寻找创建一个开源UML序列图表工具.但是,我遇到了麻烦,越过前几行代码:/
API看起来已经发生了巨大的变化,我似乎无法通过查看代码来推断出正确的用法.
当我做:
var workspace = new CustomWorkspace();
string solutionPath = @"C:\Workspace\RoslynTest\RoslynTest.sln";
var solution = workspace.CurrentSolution;
Run Code Online (Sandbox Code Playgroud)
我发现workspace.CurrentSolution有0个项目.我认为这将等同于之前Workspace.LoadSolution( string solutionFile )据称包含解决方案中的任何项目的内容,但我没有找到这条路径的任何成功.
我非常困惑0.o
如果有人可以提供一些关于我如何使用FindReferences API来识别特定方法的所有调用的额外指导,那将非常感谢!
或者,我最好采取静态分析方法吗?我想支持lambdas,iterator方法和async之类的东西.
================================================== ==================
编辑 -
以下是基于已接受答案的完整示例:
using System.Linq;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.MSBuild;
using Microsoft.CodeAnalysis.FindSymbols;
using System.Diagnostics;
namespace RoslynTest
{
class Program
{
static void Main(string[] args)
{
string solutionPath = @"C:\Workspace\RoslynTest\RoslynTest.sln";
var workspace = MSBuildWorkspace.Create();
var solution = workspace.OpenSolutionAsync(solutionPath).Result;
var project = solution.Projects.Where(p => p.Name == "RoslynTest").First();
var compilation = project.GetCompilationAsync().Result;
var programClass …Run Code Online (Sandbox Code Playgroud) 我正在构建一个动态生成密钥的表控件(我理解这可能不是一个好主意 - 我想密钥应该与它所代表的数据唯一关联,否则React可能只为我们生成唯一的ID?),但无论哪种方式似乎钥匙没有设置,我不知道为什么.表中的行是使用可在此处找到的函数生成的.基本上我有一个辅助组件,它使用一个可选组件来转换所有子元素 - 这里是其中一个转换函数(来自TableBody组件):
const transformRows = (keyPrefix) => (children, passthroughProps) => (React.Children.map(children, (c, i) => {
return React.cloneElement(c, {
key: `${keyPrefix}-${i}`,
style: rowStyle,
className: rowClassName,
columnDefinitions: columnDefinitions,
rowData: tableData[i],
includeVerticalScrollbar,
...passthroughProps
});
}));
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我单步执行代码时,似乎正在分配密钥,但随后我在浏览器中收到一条警告,该警告会在堆栈跟踪中Each child in an array or iterator should have a unique "key" prop追溯到此处.
有任何想法吗?
我正在创建一个用于创建.NET UML Sequence Diagrams的开源项目,该项目利用了一个名为js-sequence-diagrams的javascript库.我不确定Roslyn是否适合这项工作,但我认为我会试一试,所以我总结了一些概念验证代码,它试图获取所有方法及其调用,然后以一种形式输出这些调用.可以用js-sequence-diagrams来解释.
代码生成一些输出,但它不捕获所有内容.我似乎无法通过扩展方法捕获调用,静态类中的静态方法的调用.
我确实看到了带out参数的方法调用,但没有以任何形式扩展BaseMethodDeclarationSyntax
这是代码(请记住,这是概念代码的证明,所以我没有完全遵循最佳实践,但我不是在这里请求代码审查...另外,我习惯使用任务所以我在搞乱等待,但我不完全确定我正在使用它)
https://gist.github.com/SoundLogic/11193841
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection.Emit;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Formatting;
using Microsoft.CodeAnalysis.MSBuild;
using Microsoft.CodeAnalysis.FindSymbols;
using System.Collections.Immutable;
namespace Diagrams
{
class Program
{
static void Main(string[] args)
{
string solutionName = "Diagrams";
string solutionExtension = ".sln";
string solutionFileName = solutionName + solutionExtension;
string rootPath = @"C:\Workspace\";
string solutionPath = rootPath + solutionName + @"\" + solutionFileName;
MSBuildWorkspace workspace = MSBuildWorkspace.Create(); …Run Code Online (Sandbox Code Playgroud) 在没有打破封装的情况下,有没有一种方法可以执行类似下面的操作?
import React, { Component, PropTypes } from 'react';
class Dashboard extends Component {
constructor(props, context) {
super(props, context);
this.setRef = ::this.setRef;
}
componentDidMount() {
const node = ReactDOM.findDOMNode(this.someRef);
const newHeight = window.innerHeight - node.offsetTop - 30;
node.style.maxHeight = `${newHeight}px`;
}
render() {
return (
<div id="some-element-id" ref={this.setRef}>
</div>
);
}
setRef(ref) {
this.someRef= ref;
}
}
Run Code Online (Sandbox Code Playgroud)
ReactDOM.findDOMNode 似乎是建议的解决方法,但这仍然打破了封装,文档在这个程度上有一个很大的红旗.
我想使用带有列布局的flexbox,但我希望将顶部n - 1弹性项目固定到顶部,将nth弹性项目固定到主要弹性容器区域的底部.
我通过使用nthflex项目来解决这个问题也是一个新的flexbox/flex容器使用justify-content: flex-end,但我找不到任何这样做的例子 - 所以这是一个正确/可接受的解决方案,根据标准,如果没有,如何我会用flexbox来解决这个问题吗?
这是一个简单的例子:
.flex-container {
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
flex-direction: column;
width: 300px;
height: 240px;
background-color: Silver;
}
.flex-container-bottom {
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
flex-direction: column;
width: 300px;
height: 240px;
background-color: orange;
-webkit-justify-content: flex-end;
-ms-flex-pack: end;
justify-content: flex-end;
}
.flex-item {
background-color: DeepSkyBlue;
width: 100px;
height: 100px;
margin: 5px;
}
.flex-item-bottom {
background-color: red;
width: 100%;
height: 50px;
}Run Code Online (Sandbox Code Playgroud)
<div class="flex-container">
<div class="flex-item">flex …Run Code Online (Sandbox Code Playgroud)我正在尝试使用Bing Maps REST API来查询给定搜索半径内给定名称的所有实体的地址.最终目标是做类似星巴克在这里做的事情:商店定位器,但我使用了Fiddler,看起来他们正在使用6.3 API:/
如果有办法,这似乎很难记录.如果您上传自己的数据,有一些如何执行此操作的示例,但如果您正在搜索应该已经在地图上的本地商家,则不会这样做:示例.这是我到目前为止所尝试的......它正在返回俄勒冈州的星巴克:
var query = 'starbucks';
_map.getCredentials(function (credentials) {
$.getJSON('http://dev.virtualearth.net/REST/V1/Locations/' + query + '?key=' + credentials + '&lat=' + position.coords.latitude + '&long=' + position.coords.longitude + '&limit=25&jsonp=?&s=1',
function (result) {
if (result.resourceSets[0].address != 'undefined') {
var address = result.resourceSets[0].address;
alert(address);
}
else {
$("#results").html("Oops! It appears one or more of the addresses you entered are incorrect. :( ");
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是位置查询之前的代码,以防您想知道我在位置查询中使用的位置数据是什么 - 它主要来自用户通过地理定位API的位置:
var _map;
$(document).ready(function () {
if (Modernizr.geolocation) {
$(".geofallback").hide(); …Run Code Online (Sandbox Code Playgroud) 所以我正在使用一个扩展基本设置类的设置类,它类似于"全局设置".有几个服务,每个服务都有自己的设置类,可以扩展抽象基础设置类.抽象基本设置类对应于服务之间共享的设置.首先,我将通过下面的示例进行说明,然后我将定义问题:
例:
abstract class BaseSettings {
protected $settingA;
protected $settingB;
}
class MyServiceSettings extends BaseSettings {
private $settingC;
public $settingD;
}
Run Code Online (Sandbox Code Playgroud)
问题:
如果我像这样创建一个ReflectionClass实例..
$reflect = new ReflectionClass($this);
Run Code Online (Sandbox Code Playgroud)
..来自MyServiceSettings类或BaseSettings类(因为很明显你不能有一个抽象类的实例),$reflect->getProperties()总会返回MyServiceSettings和BaseSettings的属性(我想这是合适的,因为我们真的在工作单一的具体课程)
现在我确信我可以创建一个扩展抽象BaseClass的空类来确定哪些属性去哪里(或者只是去掉抽象并创建一个BaseClass实例),但这看起来相当混乱,所以我想知道是否或许,有一种更优雅的方法来确定哪些属性属于父类,哪些属于子类?
如果你很好奇为什么我甚至这样做 - 我将设置序列化为.json文件,以便我添加一个恢复功能,以便可以继续上次成功完成的最后一次原子操作.为什么我必须这样做 - 限制环境.
javascript ×5
c# ×3
reactjs ×2
roslyn ×2
.net ×1
ajax ×1
asp.net ×1
axios ×1
bing-maps ×1
css ×1
d3.js ×1
ecmascript-6 ×1
exception ×1
flexbox ×1
geolocation ×1
html ×1
java ×1
jquery ×1
mono.cecil ×1
node.js ×1
php ×1
reflection ×1
spring ×1
webpack ×1