我有一个新的MVC Web项目,我在MVC和WebApi中使用.我在我的全局文件中使用以下代码设置了Simple Injector(来自nuGet的2.5.2版本)
// Register Injectors
SimpleInjectorConfig.Register();
Run Code Online (Sandbox Code Playgroud)
在我的SimpleInjectorConfig.cs文件中
public class SimpleInjectorConfig
{
public static void Register() {
// Create the container as usual.
Container container = new Container();
// services
container.Register<IService, MyService>();
// data
container.Register<IRepository, MyRepository>();
// Register your types, for instance using the RegisterWebApiRequest
// extension from the integration package:
container.RegisterMvcControllers(
System.Reflection.Assembly.GetExecutingAssembly());
container.RegisterMvcAttributeFilterProvider();
// This is an extension method from the integration package.
container.RegisterWebApiControllers(GlobalConfiguration.Configuration);
// verify its all ok
container.Verify();
// add dependency
GlobalConfiguration.Configuration.DependencyResolver =
new SimpleInjectorWebApiDependencyResolver(container);
}
} …Run Code Online (Sandbox Code Playgroud) asp.net asp.net-mvc dependency-injection controller simple-injector
我正在构建一个项目并使用async和await方法.每个人都说异步应用程序是从头开始构建的,那么你真的应该有任何同步方法吗?如果所有方法都返回一个Task,那么你可以异步使用它吗?
让我们举一个简单的例子,我在使用Sql将数据加载到集合中,这里有一些代码.
此代码使用ExecuteQueryAsync方法从表中加载数据,该方法GetQuery构造SQL,但调用GetTableColumns.生成并执行SQL后,我遍历集合并通过调用填充每个对象GetDataFromReader.
我的非异步方法应该是异步的吗?我是否在考虑过多的编程同步方式并缺少某些东西?
public async Task<ICollection<MyObject>> ExecuteQueryAsync(Module module, List<SqlParameter> parameters)
{
var result = new Collection<MyObject>();
var query = GetQuery(module);
using (var conn = new SqlConnection(_context.Database.Connection.ConnectionString))
{
await conn.OpenAsync();
using (var cmd = new SqlCommand(query, conn))
{
if (parameters != null)
cmd.Parameters.AddRange(parameters.ToArray());
using (var dr = await cmd.ExecuteReaderAsync())
{
while (await dr.ReadAsync())
{
result.Add(GetDataFromReader(module, dr));
}
}
}
}
return result;
}
public string GetQuery(Module module)
{
return "SELECT " + …Run Code Online (Sandbox Code Playgroud) 暂时的部分,我想从我的api响应中排除空值,所以在我的startup.cs文件中,我有这个.
services.AddMvc()
.AddJsonOptions(options =>
{
// Setup json serializer
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
});
Run Code Online (Sandbox Code Playgroud)
但是有可能声明在一个或多个控制器上,我实际上想要包含NULL值吗?
正如问题所述,任何人都知道如何在实体框架7中获取实体表名称?
我有在实体框架6.1中执行此操作的代码(来自另一个站点,无法找到链接),但实体框架7中似乎没有引用任何接口/对象.
EF6.1的代码
public string GetTableName(Type type)
{
var metadata = ((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace;
var objectItemCollection = ((ObjectItemCollection)metadata.GetItemCollection(DataSpace.OSpace));
var entityType = metadata.GetItems<EntityType>(DataSpace.OSpace).Single(e => objectItemCollection.GetClrType(e) == type);
var entitySet = metadata.GetItems(DataSpace.CSpace).Where(x => x.BuiltInTypeKind == BuiltInTypeKind.EntityType).Cast<EntityType>().Single(x => x.Name == entityType.Name);
var entitySetMappings = metadata.GetItems<EntityContainerMapping>(DataSpace.CSSpace).Single().EntitySetMappings.ToList();
EntitySet table = null;
var mapping = entitySetMappings.SingleOrDefault(x => x.EntitySet.Name == entitySet.Name);
if (mapping != null)
{
table = mapping.EntityTypeMappings.Single().Fragments.Single().StoreEntitySet;
}
else
{
mapping = entitySetMappings.SingleOrDefault(x => x.EntityTypeMappings.Where(y => y.EntityType != null).Any(y => y.EntityType.Name == entitySet.Name));
if (mapping != null) …Run Code Online (Sandbox Code Playgroud) .net c# entity-framework entity-framework-6 entity-framework-core
我可以使用bootstrap本地执行此操作吗?我正在使用版本4(在alpha中),但如果它适用于版本3,它应该适用于v4.
我在列中有2个div就像这样
<div class="row">
<div class="col-xs-12">
<div>TOP ON DESKTOP, BOTTOM ON MOBILE</div>
<div>BOTTOM ON DESKTOP, TOP ON MOBILE</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法可以让div在移动设备上交换?我不想在这里使用任何javascript,我想只使用"bootstrap"类,如果可能的话.
如果使用bootstrap是不可能的,那么请仅使用css.
我已将我的ASP.NET 5项目更新为beta 8,现在我们应该使用以下web命令
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
Run Code Online (Sandbox Code Playgroud)
现在我用环境变量更新了我的项目.
这也更新了我的launchSettings.json文件,如此
{
"profiles": {
"web": {
"commandName": "web",
"environmentVariables": {
"ASPNET_ENV": "Development"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,每次我运行命令时dnx web它都说托管环境是生产.为什么不在开发模式下启动?
在 EF6 中,我可以使用以下代码,以便我的所有日期都使用 datetime2(0) 作为列类型
modelBuilder.Properties<DateTime>()
.Configure(c => c
.HasColumnType("datetime2")
.HasPrecision(0));
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 EFCore 中做到这一点?
有这样的事吗?我用Google搜索了javafx虚拟键盘,但似乎看起来没有任何效果.我看过这篇文章,但没有代码或示例
http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/embed.htm
有没有人在javafx应用程序中拥有虚拟键盘的经验?我需要能够在聚焦文本字段时显示普通键盘或数字小键盘.
我在验证用户时使用.net声明主体.在我们的系统中,用户具有多个权限(最多可以为70).
现在,用户不是在每个请求上查询数据库,而是认为将权限存储为声明是好的.我试图将每个权限存储为单独的声明,但即使获得10个权限也会大大增加令牌的大小.
因此,我没有在1个权限中添加1个权限,我想知道如果我将所有权限添加到1个权限中,它是否会有所不同,而且确实如此.它保持令牌的大小很小,但我有我需要的权限.
现在要做到这一点,我必须将我的所有权限从数组转换为JSON字符串,然后将它们保存为我的声明.为了获得声明,我可以将字符串反序列化为一个数组,我根本不必查询数据库.
这样做可以,或者这是非常糟糕的做法?我是在制作一颗滴答作响的定时炸弹吗?这样做会很快爆炸吗?
这里的示例代码
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
// get user permissions
var permissions = await _permissionService.GetAllAsync(user);
// create list of all permissions
List<object> claimPermissions = new List<object>();
foreach (var item in permissions)
{
claimPermissions.Add(new
{
Action = item.Action,
Type = item.Type
});
}
// convert list to json
var json = Newtonsoft.Json.JsonConvert.SerializeObject(claimPermissions);
// add claim
identity.AddClaim(new Claim("Permissions", json));
Run Code Online (Sandbox Code Playgroud) 是否可以在JavaFX标签的开头添加项目符号?
这是标签的基本FXML
<Label fx:id="lblTerm1" text="Label" wrapText="true" VBox.vgrow="ALWAYS" />
Run Code Online (Sandbox Code Playgroud)
它输出这样的东西
我的名字
我想要的东西
.net ×5
asp.net ×5
c# ×5
asp.net-core ×3
java ×2
javafx ×2
javafx-2 ×2
asp.net-mvc ×1
async-await ×1
asynchronous ×1
bootstrap-4 ×1
controller ×1
css ×1
fxml ×1
html ×1
java-8 ×1
javafx-8 ×1
json.net ×1
permissions ×1