小编Pra*_*hta的帖子

在Azure Service Fabric应用程序中存储配置值的位置

我正在开发Azure Service Fabric Reliable Actor实现.任何想法/链接在哪里可以存储配置值(例如数据库连接字符串)以及如何在代码中访问它.

azure azure-service-fabric

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

如何在Windows 10 UWP中实现图表控件

我需要实现线性图.Windows 10 UWP是否有任何图表控件?有什么建议?

谢谢

win-universal-app windows-10 windows-10-mobile

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

Roslyn SDK预览中的代码格式

在早期版本(Roslyn CTP)中,我使用以下代码来格式化我生成的代码,它工作得很好:

SyntaxNode.Format(FormattingOptions.GetDefaultOptions()).GetFormattedRoot()
Run Code Online (Sandbox Code Playgroud)

使用新的Roslyn版本它不再具有,那么新版本(SDK预览版)中上述代码的等价物是什么?

c# roslyn

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

Roslyn - 如何在匹配InvocationExpressionSyntax之后添加语句

我正在使用Roslyn库.我想在匹配行后添加语句:这是要求.首先,我想找到以下行:

_container.RegisterInstance(NavigationService);
Run Code Online (Sandbox Code Playgroud)

然后我想在上面的行之后添加以下语句:

_container.RegisterInstance<ISessionStateService>(SessionStateService);
_container.RegisterInstance<IFlyoutService>(FlyoutService);
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

编辑:(我已经创建了表达式,但现在如何将这两个表达添加到我的targetExpression?

   string strContent = File.ReadAllText(strPath);
        SyntaxTree tree = SyntaxTree.ParseText(strContent);
        var targetExpression = tree.GetRoot().DescendantNodes().OfType<InvocationExpressionSyntax>()
                .FirstOrDefault(
                    x => x.Expression.ToString().Contains("_container.RegisterInstance") && x.ArgumentList.ToString().Contains("NavigationService"));

        InvocationExpressionSyntax replacementNode1 =
            Syntax.InvocationExpression(Syntax.ParseExpression(@"_container.RegisterInstance<ISessionStateService>(SessionStateService);"));

        InvocationExpressionSyntax replacementNode2 =
           Syntax.InvocationExpression(Syntax.ParseExpression(@"_container.RegisterInstance<IFlyoutService>(FlyoutService);"));

        MethodDeclarationSyntax targetMethod = (MethodDeclarationSyntax)targetExpression.Parent.Parent.Parent;

        List<InvocationExpressionSyntax> list = targetMethod.DescendantNodes().OfType<InvocationExpressionSyntax>().ToList();
        int index = list.IndexOf(targetExpression);

        list.Insert(index + 1, replacementNode1);
        list.Insert(index + 1, replacementNode2);
Run Code Online (Sandbox Code Playgroud)

现在问题是如何获取我更新的树?意味着如何更新我的列表并使用这些更改获取树.

编辑:现在我能够生成添加节点,但只有问题是格式化..间距不正确.这是代码:

   string strContent = File.ReadAllText(strPath);
        SyntaxTree tree = SyntaxTree.ParseText(strContent);

        ExpressionStatementSyntax expressionStatementSyntax =
            Syntax.ExpressionStatement(Syntax.ParseExpression("_container.RegisterInstance(NavigationService);"));

        var targetBlock =
            tree.GetRoot()
                .DescendantNodes()
                .OfType<BlockSyntax>()
                .FirstOrDefault(x => x.Statements.Any(y => y.ToString().Contains("_container.RegisterInstance")));

        StatementSyntax syn1 …
Run Code Online (Sandbox Code Playgroud)

c# roslyn

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

托管身份 - 如何在本地调试

我正在使用以下代码在我的 Web 应用程序上测试系统托管标识,当我在 Azure 中部署时它可以正常工作,但有没有办法在本地进行测试(不向我的 Azure 帐户授予该资源的权限?)?

AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();

KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://EASDemo.vault.azure.net/secrets/test")
                .ConfigureAwait(false);
return new string[] { secret.Value };
Run Code Online (Sandbox Code Playgroud)

c# azure-managed-identity

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

Roslyn - 将字符串解析为MethodDeclarationSyntax

在Roslyn中是否有任何函数,通过它我可以将我的字符串解析为MethodDeclarationSyntax?

我有一个包含方法声明的文件,所以我正在将该文件内容读取为字符串,现在我想从该字符串创建一个Method.有什么建议?

roslyn

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

读/写包含特殊字符的XML节点

我需要将字符串转换为XmlNode并将其添加到现有的Xaml文件中.

我的Xml字符串包含特殊字符.

这是我的Xml字符串(来自T4模板),其中包含""作为属性值.

<Button Margin="10,0,0,0" Width="100" Height="100" HorizontalContentAlignment="Center"
            Background="{StaticResource TopAppbarTileBackground}" 
            x:Name="chanceAppBarButton">
        <Grid Margin="5">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
                        <TextBlock ***Text="&#xE10F;"*** VerticalAlignment="Top" HorizontalAlignment="Center" 
                                   TextAlignment="Center" Style="{StaticResource TopAppbarIconStyle}"/>

            <TextBlock  Grid.Row="1" Style="{StaticResource TopAppbarTileTextStyle}" x:Uid="chanceAppBarButtonLabel"
                       VerticalAlignment="Top" Margin="0" HorizontalAlignment="Center" 
                                   TextAlignment="Center"/>
        </Grid></Button>
Run Code Online (Sandbox Code Playgroud)

下面是将Xml String转换为Node并将其附加到现有文件的代码(部分).

 var xmldoc = new XmlDocument();
        xmldoc.Load(filePath);
        XmlElement rootElement = xmldoc.DocumentElement;
     XmlNode xmlNode = CreateNodeFromXmlString(xmlNodeString, namespaceList);  
XmlNode importNode = rootElement.OwnerDocument.ImportNode(xmlNode, true);
     rootElement.AppendChild(importNode);  // Add Xml node to Parent Element
     xmldoc.Save(filePath);  // Save Xml file

     private static XmlNode CreateNodeFromXmlString(string xml, Dictionary<string, string> namespaceList)
    { …
Run Code Online (Sandbox Code Playgroud)

xml xml-parsing

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