私はそのようなコードを持っています (これは nunit-console によって実行される単体テストの一部です):
class MyClass
{
[DI(Type = typeof(MyClass))]
public IMyClass MyClassProperty {get;set;}
}
反射により、私はそのようなクラスをスキャンしてからAutofacに登録しています:
// Register MyClass as IMyClass
autofacBuilder.RegisterType(diAttribute.Type).As(propertyInfo.PropertyType);
その後、このプロパティを同じ方法で解決する必要があります-リフレクションによって:
autofacContainer.Resolve(propertyInfo.PropertyType) // it contains IMyClass
このコードをローカルで起動すると、うまく機能します。ただし、TeamCity では機能しません。エラーで失敗します:
Error: 'Autofac.Core.DependencyResolutionException: An exception was thrown while executing a resolve operation. See the InnerException for details. ---> Common Language Runtime detected an invalid program. (See inner exception for details.) ---> System.InvalidProgramException: Common Language Runtime detected an invalid program.