Difficulty: Easy
Correct Answer: Assembly-level attributes (e.g., title, version, company)
Explanation:
Introduction / Context:
Many C# project templates include a file named AssemblyInfo.cs (or equivalent in SDK-style projects via attributes in the .csproj). Understanding its purpose helps you know where common metadata is defined.
Given Data / Assumptions:
Concept / Approach:
AssemblyInfo.cs contains assembly-level attributes such as AssemblyTitle, AssemblyDescription, AssemblyCompany, AssemblyProduct, AssemblyVersion, and others. These attributes define metadata for the entire assembly and are emitted at the assembly scope.
Step-by-Step Solution:
Verification / Alternative check:
Open a standard .NET Framework project and review AssemblyInfo.cs; the attributes are clearly marked with the assembly: target specifier.
Why Other Options Are Wrong:
Method/class/struct/namespace attributes exist but live in code near those declarations, not in AssemblyInfo.cs by default.
Common Pitfalls:
Assuming AssemblyInfo.cs is mandatory in all templates; SDK-style projects may auto-generate attributes or place them in the .csproj, but they are still assembly-level.
Final Answer:
Assembly-level attributes (e.g., title, version, company)
Discussion & Comments