.NET çekirdeğimdeki bir sınama kaynağı olarak bir json dosyası gömmek gerekiyor. http://codeopinion.com/asp-net-core-embedded-resource/'un bu yazısının yazarı, var assembly = Assembly.GetExecutingAssembly();
kullanımını içeren örnek bir kod sağladı. Ancak, bunu denediğimde hatayı alıyorum: Cannot resolve symbol ‘GetExecutingAssembly’ and ‘Assembly’ does not contain a definition for ‘GetExecuringAssembly’
Assembly.GetExecutingAssembly() kullanılabilir mi?
cevap
Artık "static" Assembly sınıfı yok. Bunun yerine yüklemek istediğiniz mecliste bir sınıf/tip adıyla değiştirilmesi gerektiğini
typeof(<AClassHere>).GetTypeInfo().Assembly
gibi bir şey yapmak zorunda.
bu, bildiğim en iyi yoldur. ama bu çirkin :( –
Hayır, .NET Core 1.0/1.1 sürümünde kullanılamaz.
Ancak yanlış hatırlamıyorsam, o .NET Core 2.0 geri olacak ve .NET> = 4.5 yapma karşı yazılı kitaplıkları ile çok daha büyük bir API yüzeyini ve artan uyumluluğa sahip olacak bu yılın ilerleyen tahliye edilecek olan netstandard2.0
, bunları .NET Standard 2.0/2.1'e taşımak daha kolay.
Ancak, API uygulamalarının birçoğu platforma bağlı olacaktır. Araçlar, her yerde SomeAPI.GetSomething()
'u arayabileceksiniz, ancak .NET Core'da çalıştırıyorsanız, PlatformNotSupportedException
'u atabilirsiniz.
Ancak, derleme taraması ve keşfedilmesiyle ilgili çoğu API, .NET Core/Standard 2.0 sürümüne dönmelidir. .NET Core uygulamasında AppDomains olmadığı için AppDomain
civarında bulunan içerikler hala kayboluyor ve işlemler yalıtım için kullanılmalıdır. Yukarıdaki NET Standard 1.5 veya hedefliyorsanız
Buna ek olarak, [alternatif için bu linke bakın.] (https://forums.asp.net/t/2001385.aspx?Assembly+GetExecutingAssembly+core) – Rohit416
, aşağıdakilerden herhangi birini çağırabilir:
System.Reflection.Assembly.GetExecutingAssembly();
System.Reflection.Assembly.GetEntryAssembly();
System.Reflection.Assembly.GetCallingAssembly();
NET Standard önceki sürümlerini hedefleyen sonra typeof(SomeClass).GetTypeInfo().Assembly
yöntem tek yoludur.
@jgauffin 'System .Reflection.Assembly.GetEntryAssembly() ', .NET Core'un bir parçasıdır. Bunun için corefx'de testler vardır: https://github.com/dotnet/corefx/blob/6317e53b89680d83747d789c354bb1acda011758/src/System.Reflection/tests/ AssemblyTests.cs # L120-L128 – Polynomial
@jgauffin dotnetcore, .NET standardının bir parçasıdır. –
Uygulamanın geçerli çalışma dizinini döndürür. Hata ayıklama ve birim testleri için kullanışlıdır.
Directory.GetCurrentDirectory();
ait
Olası kopyalar [nasıl DNX Çekirdek 5.0 (ASP.NET 5)? In yürütme derleme başvurusu yapmak] (http://stackoverflow.com/questions/32856659/how-do-you-reference- i-execute-assembly-in-dnx-core-5-0-asp-net-5) –