我是DI和IoC的新手,我正在尝试决定学习哪个IoC容器.我已经看到了几个性能比较,其中引用的三个容器似乎表现得非常好.但是,我没有找到包含Hiro或Simple Injector的功能比较.Autofac的社区似乎是最大的,但Hiro和Simple Injector在基准测试中非常快,而Simple Injector尤其声称非常容易学习.也就是说,我不想学习一个并且必须切换到另一个因为功能集有限.出于这个原因,我倾向于Autofac,因为它相当成熟,功能齐全(这里和这里的好文章),也是最快的IoC容器之一.有没有人对这三个容器中至少有两个有过经验?你能提供任何功能比较吗?
.net dependency-injection inversion-of-control autofac simple-injector
对于给定的 Web 应用服务,当设置多个部署槽时,例如:
myapp
myapp/staging
我创建了一个在 上标记为“部署槽设置”的 appSetting myapp,当我交换槽时会发生什么?部署槽设置是保留myapp还是移动到myapp/staging?
另外,如果我在部署槽之间混合和匹配部署槽设置和非部署槽设置,会发生什么情况?
azure azure-configuration azure-deployment-slots azure-web-app-service
更新:对于tl; dr版本跳到底部
我有一个非常简单的JsonConverter子类,我正在使用Web API:
public class DbGeographyJsonConverter : JsonConverter
{
public override bool CanConvert(Type type)
{
return typeof(DbGeography).IsAssignableFrom(type);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var value = (string)reader.Value;
if (value.StartsWith("POINT", StringComparison.OrdinalIgnoreCase))
{
return DbGeography.PointFromText(value, DbGeography.DefaultCoordinateSystemId);
}
else if (value.StartsWith("POLYGON", StringComparison.OrdinalIgnoreCase))
{
return DbGeography.FromText(value, DbGeography.DefaultCoordinateSystemId);
}
else //We don't want to support anything else right now.
{
throw new ArgumentException();
}
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
serializer.Serialize(writer, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在列上创建 FK,现在我在想什么时候应该使用ON DELETE RESTRICT?(或者ON UPDATE RESTRICT)。不是和一样吗NO ACTION?
这ON DELETE RESTRICT意味着如果存在引用给定父行值的子行,则无法删除该父行。如果父行没有引用子行,则可以删除该父行。无论如何,它的定义是外键的默认行为。
我错过了什么吗?
我在IIS 7.5中使用URL重写和应用程序请求路由为几个需要集成到现有网站的博客设置反向代理.多个域绑定到IIS中的一个网站,每个域都将获得一个托管在其他地方的博客 - 其中ARR和URL重写进入.我遇到的问题是在我的出站规则集中服务器变量{HTTP_HOST}拉动内容服务器的主机名而不是代理服务器的主机名.是否有一个我可以使用的服务器变量,它会给我代理服务器的主机hame?这是一个博客的规则集,其中有一些简短的评论要澄清:
<rewrite>
<rules>
<rule name="Route requests for contentserver blog" stopProcessing="true">
<match url="^blog/(.*)" />
<conditions trackAllCaptures="true">
<add input="{CACHE_URL}" pattern="^(https?)://" />
<add input="{HTTP_HOST}" pattern="(www\.)proxyserver\.com$" /> <!--this works-->
</conditions>
<action type="Rewrite" url="{C:1}://blog.contentserver.com/{R:1}" />
</rule>
</rules>
<outboundRules>
<rule name="Rewrite Relative URLs" preCondition="ResponseIsHtml" stopProcessing="true">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/(.*)" negate="false" />
<action type="Rewrite" value="/blog/{R:1}" />
<conditions>
<add input="{URL}" pattern="^/blog/" />
<add input="{HTTP_HOST}" pattern="^(www\.)proxyserver\.com$" /> <!--this doesnt work because it's grabbing the content server's host, …Run Code Online (Sandbox Code Playgroud) 我正在使用一个新网站的ASP.NET身份,似乎没有很多(任何?)示例如何以分离的方式执行此操作.我不希望我的域模型的DomainUser类必须继承Microsoft.AspNet.Identity.EntityFramework.User,所以我创建了一个如下所示的类:
public class IdentityUser : User
{
public virtual DomainUser DomainUser { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经将DbSetASP.NET Identity所需的s 移动到与DbContext我的域模型相同的派生类中,如本答案所示.我将IdentityUser单向链接到DomainUservia Fluent API,如下所示:
modelBuilder.Entity<IdentityUser>().HasRequired(iu => iu.DomainUser).WithRequiredPrincipal();
Run Code Online (Sandbox Code Playgroud)
这使我可以将授权和身份验证的关注点与DomainUser类中定义的行为分开.这比将它们组合成一个类更好,但它仍然感觉很难看.我仍然在我的Domain项目中引用了所需的ASP.NET Identity程序集.我可以创建另一个项目,该项目仅包含我的IdentityUser类和对我的域程序集的引用以允许导航属性,但这开始让人感到困惑.
我觉得应该有更好,更清晰,更模块化的方式将身份链接到域,而不会导致紧密耦合.
有没有人想出更好的处理方法?我希望能引起参与ASP.NET身份项目(Hao Kung等人)的人们的注意,为此提供方向.
.net asp.net entity-framework entity-framework-6 asp.net-identity
根据每一个源我发现,以手动标记在谷歌Analytics(分析)需要3场竞选跟踪链接- utm_campaign,utm_source和utm_medium.但是,当我不使用后两者时,我得到了混合的结果.
如果我设置utm_campaign和utm_source,竞选是GA跟踪与中间值(not set).这似乎可靠地发挥作用.
如果我utm_campaign在另一个网站上设置锚标记的href并且遗漏了utm_source,则在使用GA调试脚本时,广告系列来源会显示为引荐域,但是当我查看时,没有列出广告系列名称,也没有正确跟踪Google Analytics中的报告.例如,如果在www.referringsite.com上我有一个看起来像<a href="http://www.mysite.com?utm_campaign=test">click me</a>
调试工具将显示的锚,
Campaign Source: referringsite并且Campaign Name未列出参数.
这里发生了什么?我什么时候需要使用这些参数?何时可以将它们遗漏?我的最终目标是在utm_source未明确设置时允许引荐来源用作广告系列来源,并utm_medium完全省略(看来我可以毫无问题地执行).有人可以具体解释在何时何地使用什么,以及如何实现使用httpReferrer作为隐式广告系列来源的预期效果?
我有一个XML文档,结构为Q&A,遵循以下格式(为清晰起见编辑):
<question>
<answer id="1">
<question>
<answer id="1"/>
<answer id="2"/>
<answer id="3"/>
</question>
</answer>
<answer id="2">
<question>
<answer id="1"/>
<answer id="2"/>
</question>
</answer>
</question>
Run Code Online (Sandbox Code Playgroud)
我的XSD看起来像这样:
<xs:element name="question">
<xs:complexType>
<xs:sequence>
<xs:element name="answer" type="answerType" minOccurs="2" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="AnswerIdUnique">
<xs:selector xpath="./*" />
<xs:field xpath="@id" />
</xs:unique>
</xs:element>
<xs:complexType name="answerType">
<xs:sequence>
<xs:element ref="question" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:token" use="required" />
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
当然,它比你上面看到的更多,但这说明了我的问题.我需要元素的id属性answer在兄弟姐妹中是唯一的.上面定义的XSD强制id兄弟元素之间属性的唯一性,但它不区分元素类型.我在独特约束中尝试了各种选择器和字段,但没有找到有效的组合.有什么建议?
我有一个.NET网站,我正在尝试使用web.config中的重写规则将所有请求重定向到"www.mysite.com".应该是一项简单的任务,但事实并非如此.我删除了文件系统中的所有内容,除了一个Default.aspx页面和一个带有以下重写规则的默认web.config:
<rule name="Redirect All" stopProcessing="true">
<match url="^(www\.)?mysite\.com(/.+)$" />
<action type="Redirect" url="www.mysite.com" appendQueryString="false" />
</rule>
Run Code Online (Sandbox Code Playgroud)
如果我请求www.mysite.com/garbage.aspx,服务器仍然试图查找garbage.aspx,或者我提供的任何其他URL,就好像重写规则不存在一样.很沮丧.想法?