รหัสใดที่กำลังทำงานอยู่ใน. NET Core Web Application ในกรณีนี้

บริบท

VS 2019, .NET Core 3 Preview 5 ฉันได้สร้าง ASP MVC Web App ใหม่ล่าสุด ตอนนี้กำลังตรวจสอบรหัสเริ่มต้น:

// ...
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
//...

เมื่อฉันพยายามดูว่าวิธีการขยายเหล่านั้นกำลังทำอะไรอยู่ ฉันจะไปที่แหล่งที่มา (ในกรณีของฉัน ctrl+click และนั่นเรียกใช้ตัวถอดรหัส JetBrain) ฉันได้รับสิ่งนี้:

// Decompiled with JetBrains decompiler
// Type: Microsoft.AspNetCore.Builder.AuthAppBuilderExtensions
// Assembly: Microsoft.AspNetCore.Authentication, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
// MVID: A1CE531C-37CE-4C8A-B143-24C2AC9CFE19
// Assembly location: C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\3.0.0-preview5-19227-01\ref\netcoreapp3.0\Microsoft.AspNetCore.Authentication.dll

namespace Microsoft.AspNetCore.Builder
{
  /// <summary>
  /// Extension methods to add authentication capabilities to an HTTP application pipeline.
  /// </summary>
  public static class AuthAppBuilderExtensions
  {
    /// <summary>
    /// Adds the <see cref="T:Microsoft.AspNetCore.Authentication.AuthenticationMiddleware" /> to the specified <see cref="T:Microsoft.AspNetCore.Builder.IApplicationBuilder" />, which enables authentication capabilities.
    /// </summary>
    /// <param name="app">The <see cref="T:Microsoft.AspNetCore.Builder.IApplicationBuilder" /> to add the middleware to.</param>
    /// <returns>A reference to this instance after the operation has completed.</returns>
    public static IApplicationBuilder UseAuthentication(
      this IApplicationBuilder app)
    {
      throw null;
    }
  }
}

คำถาม

เมื่อฉันดีบักโค้ด ฉันไม่ได้รับ Exception ดังนั้นจึงดูเหมือนว่าโค้ดไม่ได้กำลังทำงานอยู่ ข้อสรุปของฉันว่าสิ่งที่โครงการอ้างถึงนั้นเป็นแอสเซมบลีที่ว่างเปล่าจำลอง (ดูบรรทัดความคิดเห็น // Assembly location: C:\Program Files... ในแหล่งที่มาที่ถอดรหัสแล้ว) แต่ฉันไม่เข้าใจกลไกว่าทำไมแอสเซมบลีอื่นรันไทม์จึงถูกโหลด

ใครช่วยอธิบายสิ่งที่เกิดขึ้นจริงที่นี่ได้ไหม


person g.pickardou    schedule 08.05.2019    source แหล่งที่มา
comment
คุณกำลังดีบั๊กโค้ดที่ถอดรหัสแล้วตามที่อธิบายไว้ที่นี่: stackoverflow.com/a/32788309/3212610 หรือไม่   -  person AirLancer    schedule 08.05.2019
comment
@JohanP ตัวถอดรหัสนั้นถูกต้อง ฉันไปที่แอสเซมบลีนั้นอย่างแท้จริง (ดูความคิดเห็นตำแหน่งแอสเซมบลีในแหล่งที่ถอดรหัสแล้ว) และ Reflector ยังถอดรหัสวิธีการทั้งหมดเพื่อส่งค่าว่าง คำถามคือแอสเซมบลีจำลองเหล่านั้นคืออะไร และกลไกใดที่ทำให้แน่ใจได้ว่ารันไทม์ไม่ใช่หุ่นจำลองเหล่านั้น แต่การใช้งานจริงจะถูกโหลดแทน (และจากที่ไหน)   -  person g.pickardou    schedule 08.05.2019
comment
สิ่งเหล่านี้คือชุดประกอบอ้างอิง มีไว้เพื่อคอมไพล์ต่อต้าน ไม่ใช่เพื่อรัน การใช้งานอยู่ใน Microsoft.AspNetCore.Authentication.dll ในไดเร็กทอรี bin ของคุณ   -  person CodeCaster    schedule 08.05.2019
comment
ดูเพิ่มเติมที่ stackoverflow.com/questions/9701135/, github.com/dotnet /docs/issues/2638   -  person CodeCaster    schedule 08.05.2019
comment
@CodeCaster: ขอบคุณคุณพูดถูก ยังไม่ชัดเจน ก) การใช้แอสเซมบลีอ้างอิงจำลองนี้คืออะไร ทำไมเราไม่คอมไพล์เทียบกับของจริง? b) เหตุใด Resharper จึงถอดรหัสหุ่นเหล่านี้ ในเมื่อเห็นได้ชัดว่าเครื่องมือสร้างเป็นสิ่งที่เป็นรูปธรรมอื่น ๆ ที่จะส่งออก ดังนั้นจึงควรเป็นสำหรับ Resharper เช่นกัน...   -  person g.pickardou    schedule 08.05.2019
comment
@ g.pickardou หากคุณกำลังรอให้ R# ฉลาดและเป็นผลตามมา ฉันบอกได้แค่ว่าฉันกำลังรอมาหลายปีแล้ว   -  person springy76    schedule 29.05.2019
comment
@ springy76: ฉันรู้ดี ดังนั้นฉันจึงเปิดรับทางเลือกอื่น อะไรนำทางฉันไปยังแหล่งที่มาในกรณีที่อธิบายไว้   -  person g.pickardou    schedule 29.05.2019
comment
@CodeCaster เป็นไปได้ไหมที่จะบอก decompiler ว่าอย่าเปิด ref dll แต่ src dll ?   -  person Legends    schedule 01.10.2019