小编Mic*_*ync的帖子

如何在PowerShell中退出ForEach-Object

我有以下代码:

$project.PropertyGroup | Foreach {
    if($_.GetAttribute('Condition').Trim() -eq $propertyGroupConditionName.Trim()) {
        $a = $project.RemoveChild($_);
        Write-Host $_.GetAttribute('Condition')"has been removed.";
    }
};
Run Code Online (Sandbox Code Playgroud)

问题1:如何退出ForEach?我尝试使用"break"和"continue",但它不起作用.

问题2:我发现我可以在一个foreach循环中改变列表...我们不能像在C#中那样做...为什么PowerShell允许我们这样做?

powershell foreach

52
推荐指数
6
解决办法
20万
查看次数

HttpClient - 任务被取消 - 如何获取确切的错误消息?

我有以下测试代码.循环316934或361992次后,我总是得到"任务被取消"错误.

如果我没有错,那么任务被取消的原因有两个:a)HttpClient超时或b)队列中的任务太多而某些任务超时.

我找不到关于排队任务的限制的文档.我尝试创建超过500K的任务,没有超时.我猜"b"的原因可能不对.

Q1.我错过了还有其他原因吗?

Q2.如果是因为HttpClient超时,我怎么能得到确切的异常消息而不是"TaskCancellation"异常.

Q3.什么是解决它的最佳方法?我应该介绍一下节流器吗?

谢谢!

var _httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml");
_httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate");
_httpClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
_httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Charset", "ISO-8859-1");

int[] intArray = Enumerable.Range(0, 600000).ToArray();

var results = intArray                
    .Select(async t => {

        using (HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, "http://www.google.com")) {
            log.Info(t);

            try {

                var response = await _httpClient.SendAsync(requestMessage);
                var responseContent = await response.Content.ReadAsStringAsync();

                return responseContent;
            }
            catch (Exception ex) {
                log.ErrorException(string.Format("SoeHtike {0}", Task.CurrentId), ex);
            }
            return null;
        }
    });

Task.WaitAll(results.ToArray());

Console.ReadLine(); …
Run Code Online (Sandbox Code Playgroud)

c# httpclient async-await

51
推荐指数
2
解决办法
3万
查看次数

C#Metro风格的IsSubclassOf或IsAssignableFrom的任何替代方案

是否有任何替代IsSubclassOfIsAssignableFrom在C#Metro风格?

我正在尝试使这个代码在Metro上运行,但无法找到替代方案.

if ((ui.GetType() == type) || (ui.GetType().IsSubclassOf(type)))
{
    return true;
}
Run Code Online (Sandbox Code Playgroud)

.net c# reflection microsoft-metro windows-runtime

34
推荐指数
2
解决办法
9277
查看次数

C++浮点到int

也许,这是一个非常简单的问题,但我无法得到答案.我已经搜索了很长一段时间(现在谷歌认为我正在发送自动查询http://twitter.com/michaelsync/status/17177278608)..

int n = 4.35 *100;
cout << n;
Run Code Online (Sandbox Code Playgroud)

为什么输出变为"434"而不是"435"?4.35*100 = 435这是一个整数值,这应该可以分配给整数变量"n",对吗?

或者C++编译器在乘法之前是否将4.35转换为整数?我认为不会.为什么编译器会自动将4.35更改为4.34,这仍然是一个浮点数?

谢谢.

c++

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

LINQ:如何将嵌套的分层对象转换为展平对象

如何使用LINQ将嵌套的分层对象转换为展平对象?我知道我们可以轻松使用foreach循环来实现这一点.但我想知道是否有办法在LINQ中编写它.

class Person{
   public int ID {get;set}
   public string Name {get;set}
   public List<Person> Children {get;}
}
Run Code Online (Sandbox Code Playgroud)

数据:

ID   : 1

Name : Jack

Children

2 | Rose 

3 | Paul
Run Code Online (Sandbox Code Playgroud)

我喜欢将此数据转换为扁平格式,如下所示.

1 | Jack 

2 | Rose 

3 | Paul
Run Code Online (Sandbox Code Playgroud)

我们怎么能用Linq做到这一点?

linq

14
推荐指数
2
解决办法
1万
查看次数

MVVM标准化

Silverlight中有人发布 MVVM目前缺乏标准化,所以每个人都有自己的风味.

这就是为什么我和WPF门徒的一些人正在积极讨论每个人都同意的MVVM的哪些元素.我完全理解我们已经以不同的方式实现了模式,我们根据项目的需要混合了几种模式或创建了自己的模式,或者让开发人员的生活变得更轻松......但是忘记了这些困难或项目的特殊需求.让我们讨论一下每个人都同意的MVVM模式的标准规则.我也在这里发表了一些想法.

为何选择MVVM?

  • 可测试性(ViewModel比代码隐藏或事件驱动代码更容易进行单元测试)
  • 在UX设计人员和开发人员之间明确分离
  • 增加视图的"可混合性"
  • 永远不需要更改模型以支持对视图的更改
  • 很少需要更改ViewModel以支持对视图的更改
  • 没有重复的代码来更新视图

做和不看

  • 不应该包含任何你想要测试的逻辑:正如Glenn所说MVVM不是代码计算练习,我们可以在代码隐藏中编写代码.但是你永远不应该写任何你想要测试的逻辑.例如:如果用户选择国家/地区,则您希望在视图中显示州或城市列表.这是业务需求,因此您应该使用单元测试来测试此逻辑.所以,你不应该在代码隐藏中写它.
  • 可以是控件或数据模板
  • 保持视图尽可能简单.:我们仍然可以谨慎使用XAML中的数据触发器或值转换器或Visual State或Blend Behivor.
  • 如果某些东西不可绑定,请使用附加属性:

在ViewModel中做和不做

  • View和Model之间的连接器
  • 保持视图状态,值转换(您可以创建要在ViewModel中显示的数据结构,而不是使用ValueConverter.例如:您需要显示名称而不是名字和姓氏.您的模型可以具有名字和最后名称名称但您可以在ViewModel中创建Name属性.)
  • 没有强大或弱(通过接口)参考View
  • 使VM尽可能可测试(例如,不调用Singleton类)
  • VM中没有与控制相关的内容(因为如果要更改视图,则还必须更改VM.)

模型

  • 可以是数据模型,DTO,POCO,域类的自动生成代理和UI模型,基于您希望如何在域服务和表示层之间分离
  • 没有对ViewModel的引用

你有什么建议或评论吗?

我们小组中有一个分歧.有人说在ViewModel中有View的界面是可以的.但是有人说如果View Model有View接口,那么它将是MVP模式.

我们的一位MVVM专家谈到MVVM Vs MVP

View => ViewModel

  • MVVM视图直接绑定到ViewModel并通过数据绑定与VM通信
  • 在MVP中,视图绑定到悬挂在SupervisingController上的模型或者根本不绑定(被动视图).

ViewModel =>查看

MVVM

  1. INPC /属性绑定
  2. 活动
  3. 消息(Event Aggregator/Messenger/RX框架)
  4. 通过中介如服务
  5. 通过界面
  6. 通过委托(View将代理传递给VM,它可以用来调用它.例如,VM可能会公开一个SetActions方法,View调用它传递它委托的方法.

MVP

在MVP案例中,标准是Presenter通过接口,数据绑定或在被动视图的情况下通过属性与视图对话.使用被动视图时,属性不使用数据绑定,而是使用视图属性getter和setter来直接设置控件值.

你怎么看待这个想法?

你认为ViewModel有View的界面吗?

如果您想添加更多,欢迎您添加... :)

关于这篇文章的全部想法是对社区中的MVVM模式有相同的理解.

mvvm

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

create-react-app + nodejs(express)服务器

我在我的应用程序中使用NodeJs + React.我在NodeJs中使用express.我使用'create-react-app'npm创建了我的示例应用程序.

我使用NodeJ来从react app调用oauth令牌.我在这篇文章中提到了这种方法在没有用户登录屏幕的情况下从Javascript调用安全的REST api.

我在下面添加了这个命令,以便与我的react应用程序一起启动NodeJ.有用.

"scripts": {
  "node": "react-scripts-ts build & node server"
}
Run Code Online (Sandbox Code Playgroud)

问题是我没有得到'create-react-app'附带的实时跟踪功能,因为我没有启动webpack-dev-server.如果我做了一些更改,我必须运行'yarn node'来重新启动并启动节点js服务器.

我的问题是如何启动nodejs express而不会丢失'create-react-app'的实时跟踪功能.

如果我需要弹出'create-react-app'并自定义脚本,只要我有以下功能就可以了.

  • start nodejs express - api
  • 加载我的react-app
  • 如果我的react或nodejs express文件有任何变化,它应该自动重新加载.

如果您有任何疑问,请随时告诉我.

谢谢,

node.js express reactjs create-react-app

12
推荐指数
2
解决办法
4352
查看次数

C#中的"new"关键字只是为了使警告消失,不是吗?

我偶然在方法签名中遇到了这个新的关键字,我发现这篇文章中给出的一些例子不准确(例如第二篇)

如果你不说"覆盖",我认为"新"已经存在.唯一的区别是,如果你不写"覆盖"(对于虚方法)或"新",你会得到一条绿线(warrning?).你仍然可以选择不写"新",它仍然可以工作.我说得对,或者我错过了重要的事情吗?

c#

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

Xml命名空间和C#csproj

我正在使用powershell 2.0编辑大量的csproj文件.编辑的一个要求是添加具有不同条件的新PropertyGroup(请查看下面的示例)

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'">
Run Code Online (Sandbox Code Playgroud)

问题是powershell为我添加的所有新PropertyGroup标记添加了空xmlns.

例如:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'My-New-Env|AnyCPU'" xmlns="">
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有任何命名空间的情况下添加新的xml节点?

我尝试在添加新的PropertyGroup之前使用下面的代码删除namespace属性,但它不起作用.(意味着该属性实际上并未删除,并且在添加新节点后我仍然可以看到空命名空间.)

$content = [xml](gc $_.FullName);     

    Write-Host "Reading "$_.FullName -foregroundcolor yellow;

    $project = $content.Project;

    $content.Project.RemoveAttribute("xmlns");
Run Code Online (Sandbox Code Playgroud)

编辑:我正在关注此帖添加新节点.

如何从powershell向csproj添加新的PropertyGroup

例:

$content = [xml](gc $_.FullName); 
  $importNode = $content.ImportNode($configs.DocumentElement, $true) 
  $project = $content.Project;
  $project
  $project.AppendChild($importNode);
  # $content.Save($_.FullName);
Run Code Online (Sandbox Code Playgroud)

xml powershell

9
推荐指数
2
解决办法
4262
查看次数

C++如何在谓词中使用"NOT"(!)?

这可能是一个愚蠢的问题,但只是想知道是否有任何解决方法.:)

是否有任何方法在谓词中有"不"?

例:

std::remove_if(s.begin(), s.end(), !IsCorrect); 
//                                 ^
Run Code Online (Sandbox Code Playgroud)

或者,我是否必须创建IsNotCorrect函数?

c++

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