小编Yve*_*lpe的帖子

点字符'.' 在MVC Web API 2中请求诸如api/people/STAFF.45287之类的请求

我试图让工作的URL是以下风格的网址:http://somedomain.com/api/people/staff.33311(就像网站一样,LAST.FM允许在他们的RESTFul和WebPage网址中添加所有类型的标记例如," http://www.last.fm/artist/psy'aviah "是LAST.FM的有效网址.

以下方案有效: - http://somedomain.com/api/people/ - 返回所有人 - http://somedomain.com/api/people/staff33311 - 也可以,但不是我的意思在我希望网址接受"点"后,就像下面的示例 - http://somedomain.com/api/people/staff.33311 - 但这给了我一个

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Run Code Online (Sandbox Code Playgroud)

我已经设置了以下内容:

  1. 控制器"PeopleController"

    public IEnumerable<Person> GetAllPeople()
    {
        return _people;
    }
    
    public IHttpActionResult GetPerson(string id)
    {
        var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower()));
        if (person == null)
            return NotFound();
    
        return Ok(person);
    }    
    
    Run Code Online (Sandbox Code Playgroud)
  2. WebApiConfig.cs

    public static void Register(HttpConfiguration config)
    {
        // …
    Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-routing asp.net-mvc-4 asp.net-web-api asp.net-web-api2

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

Entity Framework Core 中的强类型 ID

我正在尝试创建一个强类型Id类,它现在在内部保存“long”。下面实现。我在实体中使用它的问题是实体框架给了我一条消息,表明属性Id已经映射到它上面。IEntityTypeConfiguration下面看我的。

注意:我的目标不是严格的 DDD 实现。所以请在评论或回答时记住这一点。类型化背后的整个 idId是供开发人员使用的,他们被强类型化为在所有实体中使用 Id 的项目,当然翻译为long(或BIGINT) - 但对于其他人来说很清楚。

在类和配置下面,这是行不通的。该存储库可以在https://github.com/KodeFoxx/Kf.CleanArchitectureTemplate.NetCore31找到,

Id类实现(现在标记为过时,因为在找到解决方案之前我放弃了这个想法)

namespace Kf.CANetCore31.DomainDrivenDesign
{
    [DebuggerDisplay("{DebuggerDisplayString,nq}")]
    [Obsolete]
    public sealed class Id : ValueObject
    {
        public static implicit operator Id(long value)
            => new Id(value);
        public static implicit operator long(Id …
Run Code Online (Sandbox Code Playgroud)

c# domain-driven-design entity-framework entity-framework-core .net-core

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

跨平台UI模块,可与C#/ Mono后端配合使用

编辑1 2017年1月29日 -目前,我们的选择已经到电子结合EdgeJS和所有的力量的NodeJS上NPM那里包/资源.还有就是我们没有更好的选择,以创建跨平台的应用程序的所有三个plyers(macOS,linux和windows).感谢大家的投入.


ORIGINAL问题:
TL; DR - 用C#(.Net/Mono)编写的后端代码.编写需要对系统进行低级访问的桌面应用程序(跨平台OSX,Linux,Windows 7到10).寻找一站式跨平台UI工具/框架,可以通过轮询/消息传递或调用后端代码的代码来与后端代码的状态进行交互.这个"后端"包括例如扫描和列出过程信息,截取屏幕截图等.发送网络信息(访问了哪些网站等).这实际上是学生在进行在线考试时的考试监控器.教室.**

我们正在探索的选项:

  • 电子(以前称为原子壳)看起来不错,但我们不知道它是否可以互操作/调用/ kickstart C#/ Mono应用程序.也可以在他们的官方论坛上发布这个反馈,以及它是否是一个很好的电子用例.在一个理想的世界里,我们想完全使用电子,但不幸的是我认为我们需要特定于平台的逻辑(现在我们用C#w/.net和mono处理).
  • Eto.Forms是我们现在使用的,但它限制了它的UI功能 - 因为有时它仍然在不同的平台上呈现不同的(窗口大小).它还具有与用户平台相关的不同外观和感觉 - 这是一个很好的功能,但它使得难以制作专用控件来可视化状态,这在html/css中会更容易.

  • 另一种途径是Eto.Forms(或其他)之间的混合,用于引导本机UI,该UI在其窗口中托管浏览器,该窗口跨平台而不依赖于本地安装的浏览器,例如Awesomium.这仍然需要Eto.Forms或任何其他引导程序来启动应用程序,但所有其他导航将通过Awesomium呈现的html.

谢谢,伊夫

c# mono cross-platform eto electron

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

在 package.json 中配置本地打字稿编译器

编辑 #1:似乎我有一个有效的配置,但欢迎提出所有改进建议。见答案:https : //stackoverflow.com/a/42269408/1155847


原问题

我目前正在尝试设置我的环境,以便使用我package.jsondevDependencies打字稿版本。什么是一些我们的最佳实践,所以它是“编辑不知道”,最好可以用作NPM脚本,如:npm run tscompile

需要明确的是 - 我可以在使用时让一切正常npm install typescript -g- 但是我依赖于全局安装版本,这不是我想要的 - 因为我们希望在一个团队中工作并为每个版本设置特定的打字稿版本升级之前的会员,所以我们都在同一页面上。

我目前正在尝试像这样设置它 - 但是npm然后抱怨它无法将“node_modules”识别为内部或外部命令......我想我也必须将 tsconfig.json 传递给 tsc,或者在至少给它一个“工作目录”——但我什至无法从我本地下载的 npm 缓存中启动 tsc。

包.json

{
  "name": "tswithnodejsgettingstarted",
  "version": "1.0.0",
  "description": "",
  "main": "app/index.js",
  "scripts": {
    "start": "node app/index.js",
    "tscompile": "node_modules/typescript/tsc"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "typescript": "2.1.6"
  }
}
Run Code Online (Sandbox Code Playgroud)

配置文件

{
    "compileOnSave": true,
    "compilerOptions": {
        "module": "commonjs",
        "noImplicitAny": true,
        "sourceMap": true,
        "outDir": …
Run Code Online (Sandbox Code Playgroud)

node.js npm typescript tsconfig visual-studio-code

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

IISNet Server 2012R2的DotNetCore 1.0.1 WindowsHosting安装失败

我试过的事情:

  • 运行管理员
  • 关闭UAC
  • 重启机器
  • 我应该是机器上的管理员

我有以下错误日志:

[0A48:124C][2016-09-16T13:28:19]i300: Apply begin
[0A48:124C][2016-09-16T13:28:19]i010: Launching elevated engine process.
[0A48:124C][2016-09-16T13:28:19]i011: Launched elevated engine process.
[0A48:124C][2016-09-16T13:28:20]i012: Connected to elevated engine.
[0D94:0270][2016-09-16T13:28:20]i358: Pausing automatic updates.
[0D94:0270][2016-09-16T13:28:20]i359: Paused automatic updates.
[0D94:0270][2016-09-16T13:28:20]i360: Creating a system restore point.
[0D94:0270][2016-09-16T13:28:20]i362: System restore disabled, system restore point not created.
[0D94:0270][2016-09-16T13:28:20]i371: Updating session, registration key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{e39e00c9-09be-48bb-b175-01a07b3f7538}, resume: Active, restart initiated: No, disable resume: No
[0D94:08CC][2016-09-16T13:28:20]i304: Verified existing payload: AspNetCoreModule_x64 at path: C:\ProgramData\Package Cache\{4ADC4F4A-2D55-442A-8655-FBF619F94A69}v1.0.1967\packages\aspnetcoremodule_x64_en_rc2_39.msi.
[0D94:0270][2016-09-16T13:28:20]i301: Applying execute package: AspNetCoreModule_x64, action: Repair, path: C:\ProgramData\Package Cache\{4ADC4F4A-2D55-442A-8655-FBF619F94A69}v1.0.1967\packages\aspnetcoremodule_x64_en_rc2_39.msi, …
Run Code Online (Sandbox Code Playgroud)

iis windows-server-2012-r2 .net-core

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

TypeScript和ReactDOM.render方法不接受组件

TL; DR

我正在使用TypeScript和React.我已经定义了我的AppContainer.tsx组件,将其导出为默认值.我在文件app.ts中使用ReactDOM它来生存它以将其呈现给目标dom元素.但我收到以下错误(见图).有关更多信息和GitHub repo的链接,请阅读以下内容.

在此输入图像描述

问题:我在做什么或者解释是什么?从所有代码示例我看到这应该工作 - 但也许(显然)我错过了一些东西.以下是更多信息和完整GitHub仓库的链接.


环境

文件'/components/AppContainer.tsx'

/// <reference path="../../../typings/index.d.ts" />

// Top level application component

/*------------------------------------------------------------------------------------*/
/** IMPORTS **/
import * as React from 'react';
import { Component } from 'react';
/*------------------------------------------------------------------------------------*/
/*///*/

/*------------------------------------------------------------------------------------*/
/** COMPONENT **/
export default class AppContainer extends React.Component<{}, {}> {    
    render() {
        return ( <div /> );
    }    
}        
/*------------------------------------------------------------------------------------*/
/*///*/ …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs tsx react-dom typescript-typings

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

泛型和可为空(类与结构)

编辑: 在给我模式选项等之前,请参见下面有关C#8.0中Null立场的更新。


原始问题

我正尝试使用C#8.0 <Nullable>enable</Nullable>标志将基本库升级为“空启用” 。

当尝试使用抽象以及特定的泛型时,我遇到了一些问题。考虑以下代码片段,该代码片段采用Action并将其转换为Func<TResult>。这是pre-nullable-enable

public static Func<TResult> ToFunc<TResult>(this Action action)
        => () => { action(); return default; }
;
Run Code Online (Sandbox Code Playgroud)

但是post-nullable-enable我似乎很挣扎,因为我不能使TResult可TResult?为null(或),因为机智将要求where TResult: classor 的约束where TResult: struct。我无法组合这两个约束来让编译器知道TResult可以是类或值类型。目前我感到烦恼的是-因为无论类还是结构都应该能够表达出来,所以它将是可空的(无论以前的.NET初始化设计如何)。

因此,post-nullable-enable我似乎只有一个选择,那就是代码复制,下面是示例:

public static Func<TResult?> ToFuncClass<TResult>(this Action action)
        where TResult : class
        => () => { action(); return null; }
;

public static Func<TResult?> ToFuncStruct<TResult>(this Action action)
        where TResult : struct
        => …
Run Code Online (Sandbox Code Playgroud)

c# nullable .net-core c#-8.0 .net-core-3.0

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

从 YAML 配置 azure-pipelines 中的构建中排除项目

我试图排除一些项目在天蓝色管道中构建。

我尝试了以下选项...

  • 尝试仅构建核心下的项目?
- script: dotnet build **/Core/*.csproj --configuration $(buildConfiguration)
Run Code Online (Sandbox Code Playgroud)

- script: dotnet build **/Core/**/*.csproj --configuration $(buildConfiguration)
Run Code Online (Sandbox Code Playgroud)

但找不到好的例子。

我想要构建的项目位于不同的子文件夹下,如../../Core/Domain/Domain.csproj ../../Core/Presentation/Presentation.csproj

有什么我想念的吗,有可能吗?或者我只是做错了什么。

yaml azure azure-devops azure-pipelines azure-pipelines-yaml

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

在C#MonoMac(NSButton,NSLabel)中动态创建控件/对象

我正在尝试在代码中创建NSButton和NSLabel.我能够创建它,但我不知道应该在哪里添加它然后连接它以进行连接.

我不想使用XCode(w/Interface Builder),因为这些控件需要动态实例化.

  • 我应该在mainWindowController中添加NSApplicationDelegate中的按钮吗?
  • 我是否在"Window.cs"文件中将其连接起来?

有人能指出我在MonoMac/C#中动态创建和连接对象的正确方向吗?

谢谢,Yves

c# mono monomac xamarin

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

为跨平台开发分离抽象UI和具体UI(WinForms,Cocoa,GTK +)

我目前正在制作一个在后端共享代码的应用程序.作为表示层,我使用的是WinForms,Cocoa(MonoMac)和GTK#(Linux).

我正在寻找一种以抽象方式描述我的用户界面的方法,因此具体的UI实现(Cocoa,WinForms,GTK#)只需要担心显示和绘图.

这样我就可以 - 从具体视图中连接事件(按钮点击,数据输入)并将它们绑定到控制器/或抽象视图处理程序中的函数. - 让控制器/抽象视图/模型更新视图..?

所以基本上我试图得到一种IView,IController和IModel设置......或者Model-View-Presenter,或MVVM,那里有任何示例应用程序......?因为有很多理论,但没有具体的例子.


编辑2017年1月:"电子"

对于那些想在LINUX/WINDOWS和MAC上制作桌面跨平台应用程序的人,我建议也考虑一下Electron(electron.atom.io).它基本上是Chromium + NodeJS - 这意味着一个浏览器的UI设计具有Node(和npm包)的强大功能.您还可以通过EdgeJS挂钩.NET代码.

c# model-view-controller cocoa winforms monomac

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