嗨,我需要在我的T4模板文件的解决方案中添加现有项目的程序集.问题是我的T4模板位于名为Project.WebApi的项目中,我在T4模板中需要的类位于名为Project.Common.WebApi的项目中.
我试过像这样导入命名空间:
<#@ import namespace="Project.Common.WebApi.T4TemplateAttribute" #>
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
找不到类型或命名空间名称"Project"(您是否缺少using指令或程序集引用?)
我试过像这样添加程序集:
<#@ assembly name="Project.Common.WebApi" #>
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
编译转换:找不到元数据文件'Project.Common.WebApi'
我的项目包含T4Template(Project.WebApi),它引用了Project.Common.WebApi但是从我读到的内容来看,T4Template不使用项目中的引用.
我该如何解决这个问题?
我们正在考虑通过JSON(WCF或其他)调用替换(部分或多个)'经典'SOAP XML WCF调用,因为它可以直接在Javascript中降低开销和易用性.目前,我们刚刚为我们的Web服务添加了一个额外的Json端点,并将WebInvoke属性添加到某些操作并对其进行了测试.一切正常,使用C#.Net客户端或Javascript客户端.到现在为止还挺好.
但是,似乎将大型JSON字符串反序列化为C#.Net中的对象要比反序列化SOAP XML慢得多.两者都使用DataContract和DataMember属性(完全相同的DTO).我的问题是:这是预期的吗?我们可以做些什么来优化这种性能?或者,我们是否应该仅针对较小的请求考虑JSON,我们会注意到性能的提高.
现在我们已经为这个测试选择了JSON.net,即使它没有在这个测试用例中显示,它应该比.Net JSON序列化更快.不知何故,ServiceStack反序列化根本不起作用(没有错误,IList返回null).
对于测试,我们进行服务电话以收集房间列表.它返回一个GetRoomListResponse,如果返回5个虚拟房间,JSON看起来像这样:
{"Acknowledge":1,"Code":0,"Message":null,"ValidateErrors":null,"Exception":null,"RoomList":[{"Description":"DummyRoom","Id":"205305e6-9f7b-4a6a-a1de-c5933a45cac0","Location":{"Code":"123","Description":"Location 123","Id":"4268dd65-100d-47c8-a7fe-ea8bf26a7282","Number":5}},{"Description":"DummyRoom","Id":"aad737f7-0caa-4574-9ca5-f39964d50f41","Location":{"Code":"123","Description":"Location 123","Id":"b0325ff4-c169-4b56-bc89-166d4c6d9eeb","Number":5}},{"Description":"DummyRoom","Id":"c8caef4b-e708-48b3-948f-7a5cdb6979ef","Location":{"Code":"123","Description":"Location 123","Id":"11b3f513-d17a-4a00-aebb-4d92ce3f9ae8","Number":5}},{"Description":"DummyRoom","Id":"71376c49-ec41-4b12-b5b9-afff7da882c8","Location":{"Code":"123","Description":"Location 123","Id":"1a188f13-3be6-4bde-96a0-ef5e0ae4e437","Number":5}},{"Description":"DummyRoom","Id":"b947a594-209e-4195-a2c8-86f20eb883c4","Location":{"Code":"123","Description":"Location 123","Id":"053e9969-d0ed-4623-8a84-d32499b5a8a8","Number":5}}]}
Run Code Online (Sandbox Code Playgroud)
Response和DTO看起来像这样:
[DataContract(Namespace = "bla")]
public class GetRoomListResponse
{
[DataMember]
public IList<Room> RoomList;
[DataMember]
public string Exception;
[DataMember]
public AcknowledgeType Acknowledge = AcknowledgeType.Success;
[DataMember]
public string Message;
[DataMember]
public int Code;
[DataMember]
public IList<string> ValidateErrors;
}
[DataContract(Name = "Location", Namespace = "bla")]
public class Location
{
[DataMember]
public Guid Id { get; set; }
[DataMember]
public int Number { get; set; }
[DataMember]
public string Code { …Run Code Online (Sandbox Code Playgroud) 我只是尝试ASP.NET 4.5捆绑和缩小,并遇到了一个问题.
我有大约10个css文件,其中2个最初在布局中使用属性media ="screen"引用.
由于将css添加到bundle的语法不允许你指定应该添加这样的属性(有意义,因为该属性将适用于整个bundle),我希望看到@ Styles.Render的重载,允许我指定html属性,就像在其他Html助手中一样,但没有.
有一个丑陋的解决方案,因为我知道创建的bundle的url,我可以自己制作标签,但是我会失去ASP.NET处理的缓存机制,允许它自己渲染标签.
有没有办法做到这一点,我错过了什么?或者这仅仅是对设计团队的监督?
asp.net-mvc asp.net-mvc-4 bundling-and-minification asp.net-optimization
我有以下MVC 5 Razor HTML帮助器:
@Html.TextBoxFor(m => m.ShortName,
new { @class = "form-control", @placeholder = "short name"})
Run Code Online (Sandbox Code Playgroud)
我需要这个字段是必需的(例如,当用户导航而没有放置值值时,会有一个红色轮廓).在WebForms HTML 5中我可以说<input type="text" required />具有这种效果.在Razor语法中实现此功能的正确语法是什么?
我想在中间件组件中连接异常处理,如下所示:
public override async Task Invoke(IOwinContext context)
{
try
{
await Next.Invoke(context);
}
catch (Exception ex)
{
// Log error and return 500 response
}
}
Run Code Online (Sandbox Code Playgroud)
但是,HttpErrorResponse在我可以访问之前,我想要捕获的一些异常被Web API管道捕获并转换为s.在这个过程中,我丢失了很多关于错误的细节,所以在调试时我无法得到有用的堆栈跟踪(调试器在抛出异常时甚至不会停止 - 我必须手动单步执行代码并查看它失败的地方......).
我尝试使用以下实现添加自定义异常处理程序:
public Task HandleAsync(ExceptionHandlerContext context, CancellationToken cancellationToken)
{
var owinContext = context.Request.GetOwinContext();
owinContext.Set(Constants.ContextKeys.Exception, context.Exception);
return Task.FromResult(0);
}
Run Code Online (Sandbox Code Playgroud)
通过注册config.Services.Replace(typeof(IExceptionHandler), new MyExceptionHandler());在我的启动配置,但在执行后看着它Next.Invoke(context)通过
context.Get<Exception>(Constants.ContextKeys.Exception);
Run Code Online (Sandbox Code Playgroud)
仍然没有给我所有我想要的细节,以及没有在调试器的故障点停止.
有没有办法可以完全关闭所有内置错误处理,以便我自己的中间件可以处理它?
澄清,因为很多人似乎误解了我的追求:
是否可以禁止JQuery UI自动完成小部件中的自由文本输入?
例如,我只希望允许用户从自动完成列表中显示的项目列表中进行选择,并且不希望他们能够编写一些随机文本.
我没有在演示/文档中看到任何描述如何执行此操作的内容.
http://jqueryui.com/demos/autocomplete/
我正在使用这样的自动完成功能
$('#selector').autocomplete({
source: url,
minlength: 2,
select: function (event, ui) {
// etc
}
Run Code Online (Sandbox Code Playgroud) 在SQL Server 2008中,我有一个表CUSTOMERS,它有两列:
身份证,资产负债表
如何以最有效的方式编写选择具有最大余额的客户ID的查询?
选项1:ORDER BY BALANCE and SELECT TOP(1)- >成本太高.
选项2:首先Get MAX amount,然后进行另一个查询,使用where clause- >成本太多而且看起来不可靠.
我正在使用Angular 2和Meteor.生成组件会产生以下错误:
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MyApp } from './app.component';
import { LoginComponent } from '../../components/login/login.component';
import { SignupComponent } from '../../components/signup/signup.component';
import { ResourcesComponent } from '../../components/resources/resources.component';
import { NavbarComponent } from '../../components/navbar/navbar.component';
@NgModule({
declarations: [
MyApp,
LoginComponent,
SignupComponent,
ResourcesComponent
],
entryComponents: [
MyApp
],
imports:[BrowserModule,
LoginComponent,
SignupComponent,
ResourcesComponent
],
bootstrap: [MyApp]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
app.module.ts文件是
import 'zone.js';
import 'reflect-metadata';
import { Component } from '@angular/core'; …Run Code Online (Sandbox Code Playgroud) 我有一个我定义为的文本框
<%= Html.TextBox("Username", Model.Form.Username,
new { @class = "textbox", @disabled = "disabled" })%>
Run Code Online (Sandbox Code Playgroud)
在我的行动中
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult EditLogin(LoginForm post) {
...
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
post.Username将为空,所有其他属性绑定正确,但如果我将@disable ="disabled更改为@ readonly ="readonly"用户名绑定正确且一切正常.
看起来模型绑定忽略禁用字段中的值.他们是这样的吗?我仍然需要字段的值来绑定到模型.我可以使用readonly但更喜欢使用disabled,因此用户在视觉上可以看出他们无法编辑字段的值.
在将项目从使用Entity Framework 5升级到Entity Framework 6之后(虽然NuGets更新功能)我在生成的Entities类上收到以下错误:
错误1命名空间"System.Data"中不存在类型或命名空间名称"Objects"
(您是否缺少程序集引用?)
我知道这是因为命名空间已经改变,我可以通过更改我的导入来手动修复错误:
using System.Data.Objects;
和using System.Data.Objects.DataClasses;
To:
using System.Data.Entity.Core.Objects;
但是生成文件所以我需要在每次之后重新应用此修复程序Update model from Database.有没有额外的东西可以让EF生成没有这个错误的模型.
c# entity-framework ef-database-first entity-framework-5 entity-framework-6