可能是您忘记在容器中注册 INamedDependency 实例:
public class MyCustomAttribute : FilterAttribute
{
public IDependencyName DependencyName { get; set; }
}
public interface IDependencyName
{
}
public class DependencyName : IDependencyName
{
}
[Test]
public void ResolveCustomTest()
{
// Arrange
var dependencyInstance = new DependencyName();
var builder = new ContainerBuilder();
builder.RegisterInstance(dependencyInstance).Named<IDependencyName>("dependencyName");
builder.RegisterType<MyCustomAttribute>().WithProperty(ResolvedParameter.ForNamed<IDependencyName>("dependencyName"));
builder.RegisterFilterProvider();
var root = builder.Build();
// Act
var attr = root.BeginLifetimeScope("AutofacWebRequest").Resolve<MyCustomAttribute>();
// Assert
Assert.AreEqual(attr.DependencyName, dependencyInstance);
}