Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Daha önce, birden çok satisfiable oluşturucuya sahip bir ara yazılım türü bağımlılık ekleme kapsayıcısından örneklendiğinde, en çok parametreye sahip ara yazılım türü kullanılıyordu. Şimdi bu yalnızca bağımlılık ekleme kapsayıcısı uygularsa IServiceProviderIsServicegerçekleşir. Aksi takdirde çalışma zamanında bir istisna fırlatılır.
Sürüm kullanıma sunulmuştur
.NET 9 RC 1
Önceki davranış
Daha önce, aşağıdaki iki oluşturucudan ilki daha fazla parametre içerdiğinden (her ikisi de karşılandığında) tercih ediliyordu.
public class CookiePolicyMiddleware
{
public CookiePolicyMiddleware(RequestDelegate next, IOptions<CookiePolicyOptions> options, ILoggerFactory factory)
{
// ...
}
public CookiePolicyMiddleware(RequestDelegate next, IOptions<CookiePolicyOptions> options)
{
// ...
}
}
Yeni davranış
.NET 9'dan başlayarak, oluşturucuların hiçbiri tercih edilir ve oluşturma işlemi aşağıdaki gibi bir hatayla başarısız olur:
System.InvalidOperationException: 'Verilen tüm bağımsız değişken türlerini kabul eden birden çok oluşturucu 'Microsoft.AspNetCore.CookiePolicy.CookiePolicyMiddleware' türünde bulundu. Yalnızca bir uygulanabilir oluşturucu olmalıdır.'
Hataya neden olan değişikliğin türü
Bu değişiklik davranışsal bir değişikliktir.
Değişiklik nedeni
Anahtarlı bağımlılık ekleme desteğine yardımcı olmak için etkinleştirme mekanizması değiştirildi.
Önerilen eylem
Bu durumda ve uygulayan IServiceProviderIsServicebir bağımlılık ekleme kapsayıcısına yükseltemiyorsanız, etkilenen ara yazılım türünün tercih edilen oluşturucusna öğesini ekleyebilirsiniz ActivatorUtilitiesConstructorAttribute .
Etkilenen API’ler
Bu değişikliğin Autofac.Extensions.DependencyInjectionMicrosoft.AspNetCore.CookiePolicy.CookiePolicyMiddlewareörnek oluşturulurken hatalara neden olduğu bilinmektedir.