小编Koh*_*ins的帖子

使用async/await冻结UI

我有一些代码运行,如果你在加载时抓住并移动窗口,它将冻结.我不确定问题是什么,但我想我会发布我的代码,因为我在使用async/await方面相当新,只是想知道我的逻辑是否有问题.我不是说这导致了这个问题,我刚刚搜索并看到了其他问题,因为UI冻结和async/await经常出现.任何帮助,将不胜感激.

private async void BuildChart()
{
    DateTime date = DateTime.Today;
    using (Database db = new Database())
    {
        await BuildActual(date, db);
        await BuildActual(date.AddDays(1),db);
    }
}

private async Task BuildActual(DateTime date, Database db)
{
    List<TimeSeries> actualValues = await Task<List<TimeSeries>>.Factory.StartNew(() =>
    {
        try
        {
            var wind = DoStuff(date, db);
            if (wind == null) return null;
            if (wind.Count == 0) return null;
            return MakeTimeSeries(wind);
        }
        catch
        {
            return null;
        }
    });

    try
    {
        if (actualValues == null) return;
        DoMoreStuff(actualValues);
    }
    catch (Exception ex)
    { …
Run Code Online (Sandbox Code Playgroud)

c# task mvvm async-await

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

在 SOAP 请求中添加 KeyInfo 引用

所以我在这里遇到了与这篇文章非常相似的问题。SOAP KeyInfo 值

我想在 KeyInfo 中添加一个引用,但似乎无法通过代码找到一种方法。

这是预期的输出应该是什么:

<KeyInfo>
    <wsse:SecurityTokenReference>
        <wsse:Reference URI="#SecurityTest" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
    </wsse:SecurityTokenReference>
</KeyInfo>
Run Code Online (Sandbox Code Playgroud)

我确实在上面尝试引用的地方有这个:

<wsse:BinarySecurityToken ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" 
        EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" 
        xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
        wsu:Id="SecurityTest">Base64CertStuffBlahblah
</wsse:BinarySecurityToken>
Run Code Online (Sandbox Code Playgroud)

每次创建 KeyInfo 部分的尝试都只允许我插入一个项目,比如一个键,来填充这部分,但我只想要一个参考。这段代码是我一直在使用的代码,但目前并未创建我想要的代码。

//This creates a X509 clause but it's as far as I've got. 
//The "keyInfoData" needs to be of a different type to allow custom reference?
var signer = new SignedXmlWithId(doc) {SigningKey = Key};
KeyInfo keyInfo = new KeyInfo();
KeyInfoX509Data keyInfoData = new KeyInfoX509Data();
keyInfoData.AddCertificate(cert);
keyInfo.AddClause(keyInfoData);
signer.KeyInfo = keyInfo;
Run Code Online (Sandbox Code Playgroud)

感谢您的关注,任何帮助将不胜感激。

c# xml soap xml-signature

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

标签 统计

c# ×2

async-await ×1

mvvm ×1

soap ×1

task ×1

xml ×1

xml-signature ×1