小编Pha*_*lon的帖子

在 Angular 中处理 JSON 引用

假设我的 API 返回以下people数组:

var p1 = new Person("Alice");
var p2 = new Person("Bob");
p1.Sibling = p2;
p2.Sibling = p1;
var people = new[] { p1, p2 };
Run Code Online (Sandbox Code Playgroud)

为避免循环引用,它输出以下 JSON:

[  
   {  
      "$id":"1",
      "Name":"Alice",
      "Sibling":{  
         "$id":"2",
         "Name":"Bob",
         "Sibling":{  
            "$ref":"1"
         }
      }
   },
   {  
      "$ref":"2"
   }
]
Run Code Online (Sandbox Code Playgroud)

但是,Angular 不会处理它。相反,我最终得到一个数组,其中第二个对象只是一个带有$ref属性的文字对象。

谷歌搜索,我发现 Angular 不支持这一点,但我想一定办法让它工作。

json angularjs

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

注册在应用程序启动时实现接口的所有类(Web API)

更新:

基本上,这可以归结为"如何强制类库在Application API上加载Web API站点,这样我就可以反思它们一次,并确保我得到某个类的所有实现.或者,如果没有好办法这样做,允许该库中的类自我注册的最佳方法是什么?

原始问题:

我正在尝试在我的Web API中注册在应用程序启动时实现某个接口的所有类,并将它们放在一个列表中,这样我就可以在以后找到它们,而不会在每次调用时反映组件.

看起来相当简单,虽然我以前从未这样做过.所以经过一些谷歌搜索和阅读其他一些Stack Overflow问题后,我创建了一个容器类并提出了一个方法来注册所有具体的实现.简化的解决方案如下所示:

public static void RegisterAllBots()
        {
            var type = typeof(IRobot);
            var types = AppDomain.CurrentDomain.GetAssemblies()
                .SelectMany(s => s.GetTypes())
                .Where(type.IsAssignableFrom);
            foreach (var t in types)
            {
                TypeRepo.Add(t.Name.ToLower(), t);
            }
        }
Run Code Online (Sandbox Code Playgroud)

然后我将RegisterAllBots()放在Global.asax的Application_Start()中.

问题是,有时(但不总是),如果我开始调试解决方案"冷",它找不到实现,只找到接口本身.如果我在运行之前转到Build - > Rebuild Solution,它会找到它们.所以我假设这是Visual Studio启动WebHost项目而不重建其他类库项目的问题.

所以我在这里有几个问题.

  1. 我对这个原因是对的吗?
  2. 我怎么能阻止这个?
  3. 截至目前,这可能发生在生产中吗?我已经将它部署到一个测试站点,它似乎工作,但这可能只是运气,因为有时它确实找到了具体的实现.

c# asp.net-mvc asp.net-web-api

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

TFS 2015触发与标记提交的持续集成

我使用新的(非XAML)构建过程使用Git repos运行TFS 2015.当新标记被推送到Git仓库时,是否有某种方法可以触发特定的构建?过滤器似乎只接受分支名称.

tfs tfs-2015

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

使用 BouncyCastle 解密 Rijndael 256 块大小

我们有一个用于加密的辅助类,老实说,它可能是多年前从 Stack Overflow 复制的。

目前,我们正尝试将部分代码移植到 .NET Core,但我们发现它不起作用,因为 .NET Core 实现RijndaelManaged不支持 256 块大小。从我读到的内容来看,BouncyCastle 似乎仍然应该支持它,但我无法让它工作。“未加密”的文本只是一堆乱码。我确定我做错了什么,但对于我的生活,我无法弄清楚这一点。

这是该类的原始 .Net Framework 版本:

internal static class StringEncryptor
{
    private const int Keysize = 256;
    private const int _iterations = 1000;
    private const int _hashLenth = 20;

    public static string Encrypt(string plainText, string superSecretPassPhrase)
    {
        // Salt and IV is randomly generated each time, but is preprended to encrypted cipher text
        // so that the same Salt and IV values can be used when decrypting. …
Run Code Online (Sandbox Code Playgroud)

c# bouncycastle encryption-symmetric

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

Powershell安装后,TFS 2015返回升级向导

在2008服务器上安装TFS 2015的过程中,它提示我需要安装更新版本的Powershell。这样做需要重新启动,现在我不知道如何返回升级向导。

tfs tfs-2015

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

使用Powershell在文件中查找回车符

我想在一组文件中看到包含Windows风格crlf而不是Unix风格的文件的所有实例lf.这是我到目前为止所拥有的:

sls -Path src/*.cs -Pattern "`r`n" | group Path | select name
Run Code Online (Sandbox Code Playgroud)

如果我搜索任何普通文本,但它找不到回车符,这是有效的,即使(根据我能在网上找到的所有内容),这是适当的Powershell转义序列,用于回车和换行.因为记录\r\n也不起作用.

powershell

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