"属性'依赖关系'在此声明类型上无效." 错误

jav*_*red 8 c# wpf unity-container mvvm

为什么我收到这样的消息?

属性"依赖关系"在此声明类型上无效.它仅对'assembly'声明有效.

public partial class MainWindow : Window
{
    private OverviewViewModel _vm;

    [Dependency]
    public OverviewViewModel VM
    {
        set
        {
            _vm = value;
            this.DataContext = _vm;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Mat*_*ias 7

您可能正在使用错误的属性:DependencyAttribute

指示何时由引用程序集加载依赖项[...]

并且只能应用于程序集(而不是像你正在尝试的属性),例如:

[assembly: Dependency(/*...*/)]
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 5

允许属性声明它们可以应用的内容(通过AttributeUsageAttribute).默认值是任何值,但在这种情况下它是"assembly",意思是:您只能在汇编级别应用它,您可以通过以下方式执行此操作:

[assembly:Dependency(...)]
Run Code Online (Sandbox Code Playgroud)

如果这是您自己的属性,请检查与其关联的AttributeUsageAttribute,并确保它包含属性(使用管道|应用"或").

如果它不是您的属性,请仔细检查预期用途 - 您可能错误地使用它.