gpt4 book ai didi

c# - 标记扩展 : changing constructor argument is not evaluated in design time

转载 作者:行者123 更新时间:2023-12-04 16:48:16 26 4
gpt4 key购买 nike

这是它的样子:

当更改标记扩展 Key 属性时 - 一切正常。

更改标记扩展构造函数参数时 - 它不会更新。解决方法是使用扩展更新属性(更改 Text),然后返回。然后正确评估值。

这是扩展:

public class MyExtension : MarkupExtension
{
public string Key { get; set; }

public MyExtension() { }

public MyExtension(string key)
{
Key = key;
}

public override object ProvideValue(IServiceProvider serviceProvider)
{
return Key;
}
}

关于如何使设计器以与处理属性相同的方式处理构造函数参数的任何想法?

最佳答案

似乎要补救这种情况的方法是像这样使用 ConstructorArgumentAttribute:

public class MyExtension : MarkupExtension
{
[ConstructorArgument("key")]
public string Key { get; set; }

public MyExtension() { }

public MyExtension(string key)
{
Key = key;
}

public override object ProvideValue(IServiceProvider serviceProvider)
{
return Key;
}
}

关于c# - 标记扩展 : changing constructor argument is not evaluated in design time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com