वापस नहीं करता है मेरे पास एक कस्टम प्रकार कनवर्टर के साथ एक साधारण प्रकार है जिसे संकलित और रनटाइम पर लोड किया गया है। TypeDescriptor.GetConverter() हालांकि सही कनवर्टर नहीं मिला है। यहाँ एक स्टैंड-अलोन उदाहरणTypeDescriptor.GetConverter() मेरे कनवर्टर
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
public class Program
{
private static string src =
@"
using System;
using System.ComponentModel;
namespace LoadMe
{
[TypeConverter(typeof(FooConverter))]
public class Foo
{
}
public class FooConverter : TypeConverter
{
// stuff
}
}
";
public static void Main()
{
var codeProvider = new CSharpCodeProvider(new Dictionary<string, string>{{ "CompilerVersion", "v4.0" }});
var compileParameters = new CompilerParameters(new[] { "System.dll" }) { GenerateInMemory = true };
var compilerResults = codeProvider.CompileAssemblyFromSource(compileParameters, src);
if (compilerResults.Errors.Count == 0)
{
var fooType = compilerResults.CompiledAssembly.GetType("LoadMe.Foo");
Console.WriteLine(fooType.FullName + "::" + fooType.Assembly.FullName);
Console.WriteLine("Type converter type = '" + TypeDescriptor.GetConverter(fooType).GetType().FullName + "'");
}
else
{
foreach (var err in compilerResults.Errors)
Console.WriteLine(err);
}
}
}
यहाँ (बनाम में संकलित)
LoadMe.Foo::q5sszdls, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Type converter type = 'System.ComponentModel.TypeConverter'
मैं सिर्फ अपने आप को विशेषता की खुदाई और उदाहरण बनाना चाहिए, या मुझे याद आ रही उदाहरण के उत्पादन में किया जाता है यहाँ कुछ और?
भी अजीब! जब LINQPad में 'सी # प्रोग्राम' के रूप में भाग गया, तो यह वास्तव में काम करता है! यहां आउटपुट है। LINQPad ready source
LoadMe.Foo::oqmid5in, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Type converter type = 'LoadMe.FooConverter'
किसी भी विचार क्या LINQPad वास्तव में अलग ढंग से करता है यह सही कनवर्टर लगता है के लिए?
ऐसा काम करने के लिए माना जाता है, और [एक त्वरित ऑनलाइन परीक्षण] (http://ideone.com/16utE6) से पता चलता है कि यह करता है। क्या आप एक न्यूनतम पूरा प्रोग्राम पोस्ट कर सकते हैं जो आपके द्वारा वर्णित व्यवहार का प्रदर्शन करता है? – hvd
हम्म, प्रकार रनटाइम पर संकलित किए जाते हैं ताकि यह कारण हो। एक पृथक उदाहरण –
मैं इसे एक स्टैंडअलोन उदाहरण के रूप में संपादित कर दूंगा, एक संपादन टिप्पणी भूल गया: O –