¿Hay alguna lista en alguna parte de los atributos comunes que se usan en objetos como Serializable
?.NET Lista de atributos
Gracias
Editar ~ La razón por la que pedí es que me encontré con un atributo StoredProcedure en ntiers ORMS.
¿Hay alguna lista en alguna parte de los atributos comunes que se usan en objetos como Serializable
?.NET Lista de atributos
Gracias
Editar ~ La razón por la que pedí es que me encontré con un atributo StoredProcedure en ntiers ORMS.
Sí, mire msdn tiene cubierto por favor mire here.
EDITAR: Esta única respuesta de enlace es una mierda. Aquí hay un extractor de trabajo para todos los tipos cargables (gac) que tienen Attribute en el nombre.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var process = new Process();
//your path may vary
process.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.Arguments = "/l";
process.Start();
var consoleOutput = process.StandardOutput;
var assemblyList = new List<string>();
var startAdding = false;
while (consoleOutput.EndOfStream == false)
{
var line = consoleOutput.ReadLine();
if (line.IndexOf("The Global Assembly Cache contains the following assemblies", StringComparison.OrdinalIgnoreCase) >= 0)
{
startAdding = true;
continue;
}
if (startAdding == false)
{
continue;
}
//add any other filter conditions (framework version, etc)
if (line.IndexOf("System.", StringComparison.OrdinalIgnoreCase) < 0)
{
continue;
}
assemblyList.Add(line.Trim());
}
var collectedRecords = new List<string>();
var failedToLoad = new List<string>();
Console.WriteLine($"Found {assemblyList.Count} assemblies");
var currentItem = 1;
foreach (var gacAssemblyInfo in assemblyList)
{
Console.SetCursorPosition(0, 2);
Console.WriteLine($"On {currentItem} of {assemblyList.Count} ");
Console.SetCursorPosition(0, 3);
Console.WriteLine($"Loading {gacAssemblyInfo}");
currentItem++;
try
{
var asm = Assembly.Load(gacAssemblyInfo);
foreach (Type t in asm.GetTypes())
{
if (t.Name.EndsWith("Attribute", StringComparison.OrdinalIgnoreCase))
{
collectedRecords.Add($"{t.FullName} - {t.Assembly.FullName}");
}
}
}
catch (Exception ex)
{
failedToLoad.Add($"FAILED to load {gacAssemblyInfo} - {ex}");
Console.SetCursorPosition(1, 9);
Console.WriteLine($"Failure to load count: {failedToLoad.Count}");
Console.SetCursorPosition(4, 10);
Console.WriteLine($"Last Fail: {gacAssemblyInfo}");
}
}
var fileBase = System.IO.Path.GetRandomFileName();
var goodFile = $"{fileBase}_good.txt";
var failFile = $"{fileBase}_failedToLoad.txt";
System.IO.File.WriteAllLines(goodFile, collectedRecords);
System.IO.File.WriteAllLines(failFile, failedToLoad);
Console.SetCursorPosition(0, 15);
Console.WriteLine($"Matching types: {goodFile}");
Console.WriteLine($"Failures: {failFile}");
Console.WriteLine("Press ENTER to exit");
Console.ReadLine();
}
}
}
Here is a list, pero no está completo. Hay más de 200 atributos.
Me encontré con esto antes. Me preguntaba si hay una lista completa. –
No conozco una lista completa de Atributos, pero una búsqueda de Atributo en MSDN puede arrojar resultados interesantes. He tendido a buscar espacios de nombres para tipos de atributos interesantes y luego buscarlos para ver para qué los puedo usar. No es el enfoque más eficiente, lo sé.
La entrada de MSDN para System.Attribute tiene una lista en la parte inferior.
Es posible que no encuentre lo que está buscando porque es posible que esté buscando un atributo personalizado.
Además, puede crear sus propios atributos. Si está buscando el código de otra persona, es fácil confundirse cuando crean el suyo propio.
Usted puede utilizar el reflector para navegar por la Asamblea mscorlib
, y bajo System.Attribute
, ampliar los tipos derivados nodo. Mostrará todos los atributos para todos los ensamblados actualmente cargados en Reflector.
Todo lo que vi fue "Atributos que se usan en objetos como?" - La publicación ha sido despojada de su atributo serializable. Pensé que estaba preguntando sobre nullables (? Y ??) – StingyJack
eliminado los comentarios y la respuesta actualizada para tener información precisa una vez que se aclararon los malentendidos –