我今天想要做的就是将重定向规则写入子文件夹,例如:输入URL:example.com,然后重定向到example.com/subfolder
这么简单的愿望.我试图在互联网上找到解决方案.互联网告诉我在htdocs root中添加一个.htaccess文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^$ subfolder [L]
Run Code Online (Sandbox Code Playgroud)
我这样做了 但是显然没有成功,他们没有告诉我我必须取消注释httpd.conf中的模块:
LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)
所以我也这样做了.再没有成功.他们没有告诉我我必须更改我的httpd.conf以便启用.htaccess文件:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
再次没有成功,因为我在输入URL时收到此错误:
禁止您无权访问此服务器上的/.
现在我卡住了,我在互联网上找不到更多的解决方案.由于私人原因,我只是在Windows 7机器上运行Apache 2.4.
在我的MVVM程序中,我有一个Model类(比如说MyModel
),我从中有一个从数据库中读取的实例(使用Entity Framework).在检索对象时,我将所有数据呈现给用户.稍后用户将修改一些字段.
我想要的是创建相同的对象,除了它ID
(因为这ID
是主键并自动递增).
那我怎么能接近这个呢?我不想一个接一个地复制所有字段,这不是一个强大的方法.因为将来可能会修改模型,所以我必须在克隆方法中考虑到这一点.
那么有没有任何优雅的方法来复制对象,当在数据库中保存时,它的ID会再次自动增加?(设置ID null
会给我一个编译错误,因为它的类型int
).
在这个问题中,当提到编译器时,我实际上指的是Roslyn编译器.使用IntelliSense时出现问题,IntelliSense被认为是相同的编译器.
出于演示目的和完整性,使用以下类(使用Visual Studio 2015与C#6.0和.NET 4.6.1):
public class A
{
public IEnumerable<B> B { get; set; }
}
public class B
{
public IEnumerable<C> C { get; set; }
}
public class C { }
public class Helper<T> { }
Run Code Online (Sandbox Code Playgroud)
请看以下扩展方法:
public static void FooBar<T1, T2>(
this Helper<IEnumerable<T1>> helper,
Expression<Func<T1, IEnumerable<T2>>> expression) { ... }
Run Code Online (Sandbox Code Playgroud)
编译器能够在消耗时推断它,如下所示:
Helper<IEnumerable<B>> helper = ...;
helper.FooBar(l => l.C); //T1 is B and T2 is C
Run Code Online (Sandbox Code Playgroud)
还有这个重载的扩展方法:
public static …
Run Code Online (Sandbox Code Playgroud) 难道我还是在XML注释失踪System.Linq
在Visual Studio的2015年?因为我仍然可以在MSDN上找到它.但是在输入时,例如,这段代码:
var list = new List<string>();
list.Select(
Run Code Online (Sandbox Code Playgroud)
IntelliSense不提供命名空间中任何类/方法/成员/扩展的注释/文档System.Linq
:
这里是打(当预览Alt键 +)F12到去定义了一个随机的扩展方法Enumerable
:
我想我也没注意到Visual Studio 2013中的文档.但我确实记得他们曾经在那里,也许是在Visual Studio 2012或之前?
编辑:我忘了提到我在Visual Studio 2015中安装了Resharper 10 Ultimate.我还在Visual Studio 2013中安装了Resharper 8和9.
阅读一些博客和.NET Core 1.0的官方文档,我仍然很困惑(像许多其他人一样).
不要误会我的意思,我已经在网上阅读了几十篇文章,试图了解这个新平台的架构和术语.
阅读文档和博客,这就是他们对.NET标准库的看法:
.NET标准库是.NET API的正式规范,旨在提供给所有.NET运行时.
但他们也使用这个术语:.NET Standard和netstandard,您可以在Platform Support表中看到.
问题:.NET标准库 ==
.NET标准?如果没有,有什么区别?
我正在按照本教程创建一个代码优先数据库.
安装EF并创建第一个基本类后,它说:
运行您的应用程序,您将看到为您创建了MigrationsCodeDemo.BlogContext数据库.
好吧,我安装了所有SQL Server的VS2013 Pro(完全安装VS2013 Pro).
现在您可以从下图中看到,在教程建议后运行程序后找不到我的数据库.当我尝试进行本教程的迁移时,我确实得到了它应该得到的错误,这意味着实际上已经创建了数据库.我只是找不到它.
它在哪里?
编辑:添加了App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
Run Code Online (Sandbox Code Playgroud) 我想开发一个本机应用程序(适用于手机),它使用OAuth 2.0 授权从资源 API 访问受保护的资源。正如2.1 节中所定义的,我的客户端类型是public
.
注册后,授权服务器会提供一个client_id
用于公共身份识别的 和一个redirect_uri
.
客户端将使用授权码从授权服务器接收授权。对于中间的任何攻击者来说,这一切似乎都是安全的(如果实施正确)。
第 10.2 节讨论了客户端模拟。就我而言,资源所有者通过用户代理向授权服务器提供其凭据来授予客户端授权。本节讨论授权服务器:
应利用其他方法来保护资源所有者免受此类潜在恶意客户端的侵害。例如,授权服务器可以让资源所有者协助识别客户端及其来源。
我主要担心的client_id
是,一旦检索到和 ,就很容易冒充我的客户redirect_uri
。
由于公共客户端的性质,这可以很容易地进行逆向工程。或者就我而言,该项目将是开源的,因此可以从网络上检索此信息。
据我从第 10.2 节中了解到的,资源所有者有责任通过与授权服务器应协助的内容进行比较来检查客户端是否合法。
根据我处理向我请求授权的第三方应用程序的经验,我得到的只是一个页面,其中包含有关实际应该请求该授权的客户端的一些信息。基于纯粹的逻辑意义,我只能判断请求授权的客户端是否实际上是授权服务器告诉我它应该是谁的客户端。
因此,每当我们处理PEBKAC(我认为这种情况经常发生)时,如果资源所有者授予他们(可能看起来与我的合法客户端完全相同)授权,模仿者是否可以轻松访问受保护的资源,这不是真的吗?
我写了以下方法:
public T CreatePackage<T>() where T : new()
{
var package = new T();
if (typeof(ComponentInformationPackage) == typeof(T))
{
var compInfoPackage = package as ComponentInformationPackage;
// ...
return compInfoPackage;
}
throw new System.NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
我检查T是什么类型,根据这个我对待我的变量包.当我想要返回它时,我得到编译器错误.
" ComponentInformationPackage类型不能隐式转换为T"
我怎么解决这个问题?
注意:这个问题涉及技术方面,而不是设计决策.回答或评论不同的设计并不能回答这个问题,因为我只对这个特定问题的技术方面的性质感兴趣.
在C# 6.0
我这个方法在那里我传递一个IEnumerable<T>
:
public void MyMethod(IEnumerable<object> list) { ... }
Run Code Online (Sandbox Code Playgroud)
假设调用者在MyClass[]
数组上调用它.
我想要的是泛型类型定义的类名,我有这个方法的实现:
public void MyMethod(IEnumerable<object> list)
{
...
var name =
from abstraction in list.GetType().GetInterfaces()
where abstraction.IsGenericType
&& abstraction.GetGenericTypeDefinition() == typeof(IEnumerable<>)
from genericArgumentType in abstraction.GetGenericArguments()
select genericArgumentType.Name;
...
}
Run Code Online (Sandbox Code Playgroud)
现在在这种情况下(在方法体内),这正确地返回类的名称(例如字符串"MyClass"
).所以我尝试将其重构为一个开放的通用扩展方法,如下所示:
public static string GetGenericTypeDefinitionName<T>(this IEnumerable<T> list)
{
var name =
from abstraction in list.GetType().GetInterfaces()
where abstraction.IsGenericType
&& abstraction.GetGenericTypeDefinition() == typeof(IEnumerable<>)
from genericArgumentType in abstraction.GetGenericArguments()
select genericArgumentType.Name; …
Run Code Online (Sandbox Code Playgroud) 使用MVC 5
和Razor 3
我正在尝试HTML
使用剃刀语法动态创建属性名称,特别是data-*
属性.
因此,这是对名称的属性,并没有对价值.
<div data-foo="bar">
属性名称:data-foo
属性值:bar
这就是我正在尝试使用Razor语法:
<div data-search-@Model.Name="@view.Name">
<div data-search-@(Model.Name)="@view.Name">
Run Code Online (Sandbox Code Playgroud)
Razor都没有识别这两个例子,而是按原样呈现.所以html
属性名称输出字面意思是:data-search-@Model.Name
.
我在这里运气不好吗?
c# ×7
.net ×3
generics ×3
.htaccess ×1
.net-core ×1
apache ×1
asp.net-mvc ×1
html ×1
httpd.conf ×1
linq ×1
localdb ×1
mod-rewrite ×1
mvvm ×1
oauth-2.0 ×1
razor ×1
reflection ×1
roslyn ×1
security ×1
sql-server ×1
xml-comments ×1