1

dotPeekSystem.Web.Httpでアセンブリを見ていますが、への参照が表示されませんNewtonsoft.Json

ここに画像の説明を入力

従兄弟とは異なり、シリアライザーとしてSystem.Web.Http.Results.JsonResult使用していることは知っていますが。Newtonsoft.JsonSystem.Web.Mvc

using Newtonsoft.Json;
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;

namespace System.Web.Http.Results
{
  /// <summary>
  /// Represents an action result that returns an <see cref="F:System.Net.HttpStatusCode.OK"/> response with JSON data.
  /// </summary>
  /// <typeparam name="T">The type of content in the entity body.</typeparam>
  public class JsonResult<T> : IHttpActionResult

Newtonsoft.Json依存関係に従ってまだインストールされていない場合、ほとんどの場合、Nuget からダウンすることを理解しWebGreaseましたが、参照に表示されない理由がわかりません。

AssemblyInfo ファイルにコメントとして表示されます。

using System;
using System.Diagnostics;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;

// Assembly System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// MVID: F99F496C-B0D2-49C1-A945-C1FCABCE1695
// References: mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// References: System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// References: System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// References: System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// References: System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// References: System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// References: Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
// References: System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// References: System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

[assembly: AssemblyTrademark("")]
[assembly: NeutralResourcesLanguage("en-US")]
[assembly: AssemblyConfiguration("")]
[assembly: ComVisible(false)]
[assembly: CLSCompliant(true)]
[assembly: AssemblyCompany("Microsoft Corporation.")]
[assembly: AssemblyMetadata("Serviceable", "True")]
[assembly: AssemblyProduct("Microsoft ASP.NET MVC")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Extension]
[assembly: TargetFramework(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
[assembly: SatelliteContractVersion("5.2.3.0")]
[assembly: AssemblyCopyright("© Microsoft Corporation. All rights reserved.")]
[assembly: AssemblyFileVersion("5.2.30128.0")]
[assembly: AssemblyInformationalVersion("5.2.3-30128 (0e974218e12a67d4b1f25422119e40cfe6953e46)")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyTitle("System.Web.Http")]
[assembly: Guid("70cecdcd-46f5-492b-9e1f-1d9a947f1fd1")]
[assembly: InternalsVisibleTo("System.Web.Http.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: InternalsVisibleTo("System.Web.Http.Integration.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")]
[assembly: AssemblyVersion("5.2.3.0")]

それで、これは設定ですか、それとも dotPeek の癖ですか、それともアセンブリの構築方法に関する何かですか、それとも何か他のことですか?

4

2 に答える 2

1

この質問への回答に記載されているように、DotPeek がすべての参照を表示しなかった理由は、参照されているアセンブリが見つからなかったためです。

これは、DotPeek 2016.2 では当てはまりません。アセンブリが存在しない参照は、黄色の円にクエスチョン マークを使用して表示されます

調べたアセンブリと同じフォルダーに存在しない参照アセンブリのスクリーンショット

調べたアセンブリと同じフォルダーに存在する参照アセンブリのスクリーンショット

于 2016-09-03T15:43:00.460 に答える
1

これは古い質問であることは知っていますが、これを調査しているときに、この未回答の投稿を見たので、回答すると思いました。dotPeek に表示されない理由は、dotPeek が読み込めないアセンブリの参照を表示しないためです。

一方が他方を参照する 2 つのアセンブリを含む単純なプロジェクトを作成することで、これを非常に簡単に再現できます。DLL をフォルダーにコピーし、dotPeek で参照アセンブリを表示すると、参照アセンブリが表示されます。dotPeek から削除し、フォルダーから参照アセンブリを削除して、参照アセンブリを再度表示すると、参照が dotPeek から消えていることがわかります (AssemblyInfo.cs上記の を除いて)。

FWIW、この問題のため、同じ問題に悩まされていないため、ILSpy の使用に移行しました。

于 2015-09-02T16:06:44.780 に答える