小编ees*_*ein的帖子

如何在Roslyn上获得扩展方法?

我需要列出文件中找到的所有扩展方法.

这是我到目前为止所做的(看起来它正在工作):

var methods = nodes.OfType<MethodDeclarationSyntax>();    
var extensionMethods = methods.Where(m => 
        m.Modifiers.Any(t => t.Kind == SyntaxKind.StaticKeyword) 
        && m.ParameterList.Parameters.Any(p => 
            p.Modifiers.Any(pm => pm.Kind == SyntaxKind.ThisKeyword)));
Run Code Online (Sandbox Code Playgroud)

即使我无法测试所有情况,但看起来这样做有效.但我想知道是否有更简洁的方法来解决这个问题.

是否有某种IsExtension或一些SyntaxKind.ExtensionMethod?我看了看,但至少找不到任何明显的东西.

我正在使用最新的Roslyn Sept/12

c# roslyn

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

如何使用angular2表单获取所有"脏"(修改)字段?

我无法找到如何使用angular2表单检索用户修改的所有字段.我在这里和angular2官方表单文档做了一些研究,我找不到这样的信息.

这就是我使用jQuery的方式:

    this.isFormDirty = function (form) {
        var changeNames = [];

        $(form).find(":input:not(:button):not([type=hidden])").each(function () {
            if ((this.type == "text" || this.type == "textarea" || this.type == "number" || this.type == "hidden" || this.type == "file") && this.defaultValue != this.value) {
                changeNames.push(this.name);
            } else {
                if ((this.type == "radio" || this.type == "checkbox") && this.defaultChecked != this.checked) {
                    changeNames.push(this.name);
                } else {
                    if ((this.type == "select-one" || this.type == "select-multiple")) {
                        for (var x = 0; x < this.length; x++) {
                            if …
Run Code Online (Sandbox Code Playgroud)

angular

6
推荐指数
2
解决办法
4965
查看次数

Angular CLI无法从本地安装的库中找到模块

我创建了一个角度库:@my_library/sdk并且还创建了一个示例项目对其进行测试。问题是,在我的示例项目上安装库时,angle的构建抱怨找不到模块:

./src/app/app.module.ts中的错误找不到模块:错误:无法解析'/ Users / eestein / Documents / dev / my_library / sdk-front / samples / src /中的'@ my_library / sdk' ./src/app/app.component.ts中的“ app”错误找不到模块:错误:无法在“ / Users / eestein / Documents / dev / my_library / sdk-front / samples /”中解析“ @ my_library / sdk” src / app'

如果我在VSCode中打开两个有问题的文件(app.component.tsapp.module.ts),则不会显示错误。看起来VSCode可以找到它,但是Angular CLI找不到。该软件包也位于node_modules的文件夹中。

这是我package.json的示例项目中的内容:

"@my_library/sdk": "file:///Users/eestein/Documents/dev/my_library/sdk-front/library/my_library-sdk-1.0.0-alpha.2.tgz"
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹结构:

- library
   - library's code
   - *.tgz file
- samples
    - samples' code
    - package.json referencing the tgz file
Run Code Online (Sandbox Code Playgroud)

我已经在angular的cli GitHub页面上打开了一个问题,但是已经8天了,没有回复,所以我现在就尝试... …

angular-cli angular

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

EntityFramework不创建表

我一直在使用EF一段时间,总是采用Model-First方法.现在我正在通过Code-First土地冒险.问题是:我一直遇到自动创建表的问题.

根据一些网站,这是可能的.我尝试过他们的方法但没有成功.

这是我尝试过的一件事: Database.CreateIfNotExists()

没运气...

我的连接字符串是完美和有效的.如果我手动添加表,它确实有效.问题是当我没有创建表时.它只是没有像我说的那样创造.

我的课程装饰得很好.(再次:当我创建了DB时它正在工作)

有什么建议?这个功能真的有效吗?

我正在使用:

Visual Studio 2010 Professional

EntityFramework 4.3.1(虽然我也试过4.1)

SQL Server 2008 R2

提前致谢.

c# code-first entity-framework-4 ef-code-first ef-migrations

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

如何在Xamarin.Forms中添加背景图像到Entry?

我的设计师创建了一个背景图像来设置输入的样式,如下所示:

在此输入图像描述

我怎么能在Xamarin.Forms中实现这一点?我猜测的简单部分是移除边框,但我还需要将其放置在该图像的顶部(我假设使用RelativeLayout?)并且最难(在我的观点中)将其适当的大小设置为"填充" "图像的剩余部分.我正在使用XAML,但如果你在C#中知道我可以推断出来,没问题.有任何想法吗?

编辑:这是我到目前为止设法做的: 在此输入图像描述

代码:

<RelativeLayout>
  <Image Source="input_selected.png"></Image>
  <StackLayout Orientation="Horizontal" HorizontalOptions="CenterAndExpand">
    <Image Source="ico_password.png" Scale="0.7"></Image>
    <Entry x:Name="PasswordT" Placeholder="Senha" IsPassword="True" HorizontalOptions="CenterAndExpand" Text=""></Entry>
  </StackLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

EDIT2:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="LoginPage"
             Style="{StaticResource LoginBackground}">
  <ScrollView>
    <RelativeLayout x:Name="RelativeLayoutLogin">
      <StackLayout x:Name="BackgroundLayout" Spacing="15" HorizontalOptions="Center" VerticalOptions="Start">
        <StackLayout.Padding>
          <OnPlatform x:TypeArguments="Thickness" iOS="15, 38, 15, 15" Android="15, 18, 15, 15" WinPhone="15, 18, 15, 15" />
        </StackLayout.Padding>
        <StackLayout.Children>
          <Image Source="logo.png" Aspect="AspectFit" HeightRequest="75"></Image>
          <Image x:Name="BackgroundBox" Source="box_completo.png" Aspect="AspectFill"></Image>
        </StackLayout.Children>
      </StackLayout>

      <StackLayout RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, ElementName=BackgroundLayout, Property=Y, Constant=111}"
                   RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToView, ElementName=BackgroundLayout, Property=Width, Factor=1}"> …
Run Code Online (Sandbox Code Playgroud)

c# xaml xamarin xamarin.forms

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

如何在Azure上部署Angular2 + Webpack应用程序?

我正在尝试在线查找有关如何使用webpack应用程序将angular2部署到Azure的信息,但我找不到足够有用的信息。我按照此处的建议检查了启动包。如何部署Angular 2应用程序?但是我在那里也找不到很多帮助。

所以,我有一个本地运行webpack的angular2应用程序。它在本地运行良好。但是,如何将其部署到Azure Web Apps?

感谢您的帮助:)

谢谢!

azure webpack angular

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

如何更改Xamarin.iOS上的导航栏标题颜色

我想知道如何更改导航栏标题的颜色.这是应该在swift中完成的:

UINavigationBar.appearance().titleTextAttributes =
                             [NSForegroundColorAttributeName : UIColor.white]
Run Code Online (Sandbox Code Playgroud)

如何使用Xamarin.iOS复制该行为?

我尝试使用这里的答案在Xamarin Mac中使用什么AttributeName但我无法使它工作,因为它无法转换NSMutableAttributedStringUIStringAttributes.

谢谢.

xamarin.ios

5
推荐指数
2
解决办法
2444
查看次数

如何解决"在'android'包中找不到属性'样式'的资源标识符"?

我创建了一个样式并将其应用于按钮,但是当我尝试构建时,我得到了异常:

No resource identifier found for attribute ‘style’ in package ‘android’

这是按钮的代码:

<Button
            android:text="Settings"
            android:style="@style/SecondaryButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/settingsButton"
            android:layout_weight="0" />
Run Code Online (Sandbox Code Playgroud)

可能有什么不对?

android

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

如何在 Azure 发布管道中使用多个工件/阶段?

我有以下场景:

updates branch develop -> triggers DEV-CI -> triggers Release X
updates branch master -> triggers QA-CI -> triggers Release X
updates branch release -> triggers Prod-CI -> triggers Release X
Run Code Online (Sandbox Code Playgroud)

在“Release X”中,我添加了所有 3 个工件(dev、qa 和 prod)和 3 个独立的阶段(dev、qa 和 prod)。我的目标是,如果分支开发更新,则发布到 DEV,如果主分支更新,则发布到 QA,依此类推,但发布管道不会启动,因为它需要所有 3 个工件都可用。

仅当我只有一对一时它才有效,如下所示:

在此输入图像描述

如果我添加其他工件,即使在每个特定工件的预部署条件中添加工件过滤器之后,发布也不会开始,直到所有 3 个工件都可用。

是否可以做我在这里尝试的事情,或者我必须为每个 CI 创建一个版本?

谢谢!

编辑

听完李老师的回答,我又试了一次,还是不行。即使只运行了 QA CI,这两个环境都会被触发。

结果是这样的: 在此输入图像描述

这里 QA 版本正在下载两个工件,即使有一个特定的工件过滤器:

在此输入图像描述

这是生成该结果的设置:

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

continuous-delivery azure-devops azure-pipelines azure-pipelines-release-pipeline

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

如何在Flurl.Http上使用Polly?

目前我有这个要求:

await url
    .SetQueryParams(queryString)
    .SetClaimsToken()
    .GetJsonAsync<T>()
Run Code Online (Sandbox Code Playgroud)

我现在想开始使用Polly(https://github.com/App-vNext/Polly)来处理重试并提供更好的用户体验.例如,由于网络连接不良,第一次尝试时不会"挂断"用户.这是我尝试使用的示例:

int[] httpStatusCodesWorthRetrying = { 408, 500, 502, 503, 504 };
Policy
    .Handle<HttpException>()
    .OrResult<HttpResponse>(r => httpStatusCodesWorthRetrying.Contains(r.StatusCode))
    .WaitAndRetryAsync(new[] {
                    TimeSpan.FromSeconds(1),
                    TimeSpan.FromSeconds(2),
                    TimeSpan.FromSeconds(3)
                })
    .ExecuteAsync( await url... )
Run Code Online (Sandbox Code Playgroud)

但它需要HttpResponse是返回类型.正如你从我的Flurl例子中看到的那样,它正在返回T,即使它是一个HttpResponse.这T只是用于反序列化的类型StringContent.

第一个例子根本不起作用,因为我在PCL中使用它并且我无法获得对它的引用System.Web.所以我尝试了这个:

Policy
    .HandleResult(HttpStatusCode.InternalServerError)
    .OrResult(HttpStatusCode.BadGateway)
    .OrResult(HttpStatusCode.BadRequest)
    .WaitAndRetryAsync(new[] {
        TimeSpan.FromSeconds(1),
        TimeSpan.FromSeconds(2),
        TimeSpan.FromSeconds(3)
    })
    .ExecuteAsync(async () =>
    {
        await url...
    });
Run Code Online (Sandbox Code Playgroud)

但是这个也不起作用,因为Polly期望HttpStatusCode作为回归类型.所以我的问题是:我如何告诉polly处理那些HttpStatusCode并仍允许我返回类型T

c# httpresponse flurl polly

4
推荐指数
3
解决办法
2299
查看次数