小编atc*_*way的帖子

已降级的 Angular2 组件没有提供 ActivatedRoute!错误

目前我有一个 Angular 2 组件,它被降级为指令并用于引导式混合 Angular1/Angular2 应用程序。在浏览器中加载组件时遇到问题,出现以下错误:

没有 ActivatedRoute 的提供者!

注意:以下,ActivatedRoute 的无提供者 - Angular 2 RC5不涵盖此用例。

这个应用程序仍然使用来自引导的 Angular 1 应用程序的所有路由,并且到目前为止工作得很好;此时我还没有将路由转换为使用 Angular 2 路由。我在构建的新组件中的要求之一是检查查询参数。这可以通过以下代码完成:

import { ActivatedRoute } from '@angular/router';

constructor(
        private route: ActivatedRoute)

route.queryParams.subscribe(
    data => this.Id = data['Id']);
Run Code Online (Sandbox Code Playgroud)

认为的问题在于,上面的代码依赖于 Angular2 路由器,正如我所提到的,它还没有在我的混合引导应用程序中使用。所以这是我的问题:

  • 我可以在不使用 Angular2 路由器的情况下使用上面的代码并仍然检查查询字符串参数吗?用于$routeParams获取查询字符串信息的原始 Angular1 控制器。这在我的新 Angular2 组件中不受支持。如果上面的答案是我无法使用,ActivatedRoute因为我没有使用 Angular2 路由器,我应该尝试使用这种旧方法还是使用另一种方法;我需要做的就是检查组件中的路由参数?

angularjs angular-routing angular2-routing angular

5
推荐指数
0
解决办法
2157
查看次数

存储库或数据访问方法中的方法的"查找"和"获取"动词之间有什么区别?

无论是将Repository模式与Interface一起使用还是仅在应用程序中实现DataAccess方法,我经常会在方法描述之前看到带有"Get"或"Find"动词的方法.我在区分(2)方面有点挣扎,因为在查看DDD存储库示例或使用类似命名约定的任何其他架构时,我看到了相互矛盾的示例.例如,看看以下内容:

Function FindAllEmployees() As List(Of Employee)

Function GetAllEmployees() As List(Of Employee)
Run Code Online (Sandbox Code Playgroud)

我们不要过分关注"员工"的主题,这只是一个例子; 它可能是任何东西.我真的很感兴趣,如果有一些关于何时在开头描述一个带有'Get'和'Find'动词的方法的指南.

任何人都可以解释这个或详细说明吗?谢谢!

.net architecture domain-driven-design

4
推荐指数
2
解决办法
2448
查看次数

如何在VB.NET项目中将链接文件添加到My Project文件夹?

如何在VS.NET 2010中的VB.NET中将链接文件添加到My Project文件夹?"链接"文件是在VS.NET中右键单击项目,选择"添加 - >现有项目...",然后在文件对话框中单击箭头以显示"添加为链接".

我正在尝试将共享的"SolutionInfo.vb"文件添加到我的项目中,但我希望它位于"我的项目"文件夹中的"AssemblyInfo.vb"文件旁边.只需将其拖入解决方案资源管理器中的定位即可.该文件已成功添加,但它位于我的项目的根目录中.我希望它在"我的项目"文件夹中.

有人知道怎么做吗?

PS C#folks,我知道同样的事情可以完成,您可以将文件拖到'Properties'文件夹中,这是AssemblyInfo.cs文件驻留在C#项目中的位置.所以在C#中不是问题; 只是VB.NET.

vb.net visual-studio

4
推荐指数
1
解决办法
2043
查看次数

域模型中有第三方或自定义“图书馆”参考吗?

如果我的域模型中的逻辑依赖于第三方组件或内部自定义库/ manager .dll中的某个,创建此依赖关系是否可以接受?我显然不依赖/依赖于我的域层的任何外观或持久层,但是我很好奇其他类型的依赖关系是否违反了DDD的任何规则?

domain-driven-design

4
推荐指数
1
解决办法
473
查看次数

如何使用XElement在标签之间添加值?

我看了一堆使用的XML样本XDocument,XElement但它们似乎都有自闭项标签<To Name="John Smith"/>.我需要做以下事情:

<To Type="C">John Smith</To>
Run Code Online (Sandbox Code Playgroud)

我想下面会工作,并试图看看Linq.XML类的对象模型,但我走了只是一点点(见下面的那行不工作)

new XElement("To", new XAttribute("Type", "C")).SetValue("John Smith")
Run Code Online (Sandbox Code Playgroud)

任何有关如何正确形成XML的帮助表示赞赏,谢谢!

c# xml xelement linq-to-xml

4
推荐指数
1
解决办法
6642
查看次数

如何在下游生成新的Windows窗体时使用DI?

我有Unity DI容器最初使用我的Windows窗体应用程序.在Program.cs我有以下几点:

static void Main()
{
    var container = BuildUnityContainer();
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(container.Resolve<MainForm>());
}

private static IUnityContainer BuildUnityContainer()
{
    var container = new UnityContainer();
    container.RegisterType<ITest, MyTestClass>();
    container.RegisterType<ISomeOtherTest, MyOtherClass>();
    return container;
}
Run Code Online (Sandbox Code Playgroud)

在我的MainForm构造函数中,我有以下工作:

private readonly ITest test;

        public MainForm(ITest test)
        {
            this.test = test;
            InitializeComponent();
        }
Run Code Online (Sandbox Code Playgroud)

容器已解析,代码正常.问题/问题是,我如何实例化一个新表单MainForm,比如说Form2有以下构造函数:

private readonly ISomeOtherTest someOtherTest;

    public Form2(ISomeOtherTest someOtherTest)
    {
       this.someOtherTest = someOtherTest;
       InitializeComponent();
    }
Run Code Online (Sandbox Code Playgroud)

如果我在我的尝试中尝试以下内容MainForm:

Form2 form2 = new Form2();
form2.Show(); …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection unity-container winforms

4
推荐指数
1
解决办法
4048
查看次数

回调中的Azure移动应用程序身份验证403

我正在为客户端使用当前的Azure Mobile Apps SDKJavaScript并使用以下教程.我已经注册了所有主要提供商Azure,他们都包含他们的应用程序ID和秘密正确配置.我正在使用SDK中的样板代码来调用Azure Mobile Apps,并且提供程序登录(Twitter,Google,MSFT,FB)将在我的Web应用程序中弹出一个窗口并允许登录进行身份验证.身份验证有效.

问题是回调过程回到我的原始网络应用程序.我收到403 (Forbidden)错误,浏览器窗口中显示以下内容:

您无权查看此目录或页面.

以下是一些示例回调网址(为简洁起见,模糊处理的值)

自由软件
网址:htt
https://myservice.azurewebsites.net/.auth/login/google/callback?state=nonce%3Dc&authuser=0&session_state=4cf501&prompt=none#

问题是,如果我使用上面的任何完整URL并粘贴到新的浏览器窗口并进行调用,我会在浏览器中收到以下Azure消息:

您已成功登录

确定登录和身份验证有效,但看起来应用程序的回调失败了403 forbidden.以下是我尝试过的事情:

  1. 允许CORS在我的Azure Mobile Apps实例的服务器上的Azure配置中使用"*"来源
  2. CORS在我的ASP.NET CoreWeb应用程序中允许"*"来源
  3. 设置一个超级非限制性Content-Security-Policyindex.html

<meta http-equiv ="Content-Security-Policy" content="default-src * 'unsafe-inline'; script-src * 'unsafe-inline'; connect-src *; img-src *; style-src * 'unsafe-inline'">

这个过程和代码对我来说并不陌生.这一切都曾经在Azure Mobile Services现在已经退休的旧实例中工作Azure Mobile Apps(没有content-security-policy上述内容;我之前从未需要过).我认为这不是JavaScript …

javascript authentication azure azure-mobile-services asp.net-core

4
推荐指数
1
解决办法
278
查看次数

为什么我会使用限制为仅限一种类型的where约束?

所以我在这里查看MSDN示例:类型参数的约束(C#编程指南)和第一个示例显示了以下通用类定义where具有单个具体类型的约束:Employee

public class GenericList<T> where T : Employee
Run Code Online (Sandbox Code Playgroud)

现在当使用where约束时,我完全理解定义> 1类型时的用法,或者当使用接口时最常使用.然而(我知道这只是一个例子),为什么我只想用where约束来限制一个具体的类型?我不能只替换下面的代码:

public T FindFirstOccurrence(string s)
Run Code Online (Sandbox Code Playgroud)

以下是因为只有一个约束

public Employee FindFirstOccurrence(string s)
Run Code Online (Sandbox Code Playgroud)

我可以看到一个单一的部署代码的唯一原因whereconstriant是在未来灵活地添加额外的约束,如果Employee成了IEmployee,我成立了一个容易一点的变化.

有人可以解释使用where单一类型约束提供的目的吗?

谢谢!

c#

3
推荐指数
1
解决办法
86
查看次数

如何在ViewModel上创建Web API调用所需的字段?

我想知道它是否可行,或者如何在我的Web API调用中将我的类上的字段用作参数?一旦我收到消息,我显然可以手动执行此操作,但我希望管道中内置了一些东西(比如MVC与jQuery结合使用必需的字段注释来自动回到UI显示必需的字段表示法)所以我不必手动检查所有内容.

假设我有以下ViewModel类:

public class PersonViewModel
{
  public string FirstName {get; set;}

  public string MiddleName {get; set;}

  public string LastName {get; set;}

}
Run Code Online (Sandbox Code Playgroud)

这是我简单的Post方法 PersonController

public HttpResponseMessage Post(PersonViewModel person)
{


}
Run Code Online (Sandbox Code Playgroud)

让我们说这些FirstNameLastName字段是必需的但不是 MiddleName.我想知道的是,如果Person对象没有填充必填字段之一,调用会自动使用HTTP 400错误请求或类似情况回复客户端吗?

基本上我必须手动完成所有这些工作,或者有没有办法让框架自动处理标记字段,所以我没有很多必需字段的样板验证代码?

手动方式我试图避免:

if (ModelState.IsValid)
{
  if (person.LastName == string.empty)
  {
     return Request.CreateResponse(HttpStatusCode.BadRequest);
  }

}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏,谢谢!

asp.net-web-api

3
推荐指数
1
解决办法
3494
查看次数

为什么string.Equals默认情况下不区分大小写?

我测试了以下表达式来评估和比较(2)字符串:

.Where(x => x.GetAttributeValue<string>("country").Equals("United States"))
.Where(x => x.GetAttributeValue<string>("country").Equals("UNITED STATES"))
.Where(x => x.GetAttributeValue<string>("country").Equals("uniteD sTates"))
Run Code Online (Sandbox Code Playgroud)

注意:这些查询是为使用SDK中的CRM LINQ提供程序检索数据而构建的表达式.

价值x.GetAttributeValue<string>("country")是完全正确的United States.上面的所有表达都返回true.老实说,这对我很好,甚至很好,但似乎不适用于MSDN 文档string.Equals哪些状态:

此方法执行序数(区分大小写和文化不敏感)比较.

希望不得不做以下几点忽略整体套管:

.Where(x => x.GetAttributeValue<string>("country").Equals("UnITed sTAtes", StringComparison.OrdinalIgnoreCase))
Run Code Online (Sandbox Code Playgroud)

有趣的是,以上总是会回归false.对我来说,这是倒退的.默认实现不考虑区分大小写,并且显式赋值的StringComparison.OrdinalIgnoreCase行为类似于区分大小写,因此不匹配的确切United States.

为什么这种行为反过来或者我误解了这个?

c# dynamics-crm-2011

3
推荐指数
1
解决办法
1876
查看次数