2008-10-07 13 views
11

क्या सामान्य विशेषताएँ पर कहीं भी एक सूची है जिसका उपयोग Serializable जैसी वस्तुओं में किया जाता है?.NET विशेषता सूची

धन्यवाद

संपादित ~ कारण मैंने पूछा कि मैं ntiers ORMS में एक StoredProcedure विशेषता में आए है।

उत्तर

11

हां, देखो एमएसडीएन आपने कवर किया है कृपया here देखें।

संपादित करें: यह लिंक केवल जवाब दिया गया है। यहां सभी लोड करने योग्य प्रकारों (जीएसी) के लिए एक वर्किंग एक्स्ट्रैक्टर है जिसमें नाम में विशेषता है।

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(); 
     } 
    } 
} 
+0

मैंने देखा कि "गुण जो वस्तुओं में उपयोग किए जाते हैं?" - पोस्ट को अपने धारावाहिक गुण से हटा दिया गया था। हालांकि वह nullables (? और ??) – StingyJack

+0

के बारे में पूछ रहा था, एक बार गलतफहमी को साफ़ करने के बाद –

2

Here is a list, लेकिन यह पूरा नहीं हुआ है। 200 से अधिक गुण हैं।

+0

को साफ़ करने के बाद सटीक जानकारी प्राप्त करने के लिए टिप्पणियां और अपडेट किए गए उत्तर को हटा दिया गया था। मैं सोच रहा था कि कोई पूरी सूची है या नहीं। –

2

मुझे गुणों की पूरी सूची के बारे में पता नहीं है, लेकिन एमएसडीएन में विशेषता के लिए खोज दिलचस्प परिणाम प्राप्त कर सकते हैं। मैंने दिलचस्प विशेषता प्रकारों के लिए नेमस्पेस ब्राउज़ करने का प्रयास किया है और फिर उन्हें देखने के लिए देखें कि मैं उनका उपयोग किस प्रकार कर सकता हूं। सबसे कुशल दृष्टिकोण नहीं, मुझे पता है।

System.Attribute के लिए एमएसडीएन प्रविष्टि नीचे एक सूची है।

3

इसके अतिरिक्त, आप अपने खुद के विशेषताएं बना सकते हैं। यदि आप किसी और के कोड के माध्यम से खोज रहे हैं, तो जब वे अपना स्वयं का निर्माण करते हैं तो भ्रमित होना आसान होता है।

1

आप mscorlib विधानसभा ब्राउज़ करने के लिए परावर्तक उपयोग कर सकते हैं, और System.Attribute के तहत, व्युत्पन्न प्रकार नोड का विस्तार करें। यह वर्तमान में परावर्तक में लोड सभी असेंबली के लिए सभी विशेषताओं को दिखाएगा।

संबंधित मुद्दे