Проблема
private Dictionary<String, Action<Writer, Queue<DataSerializer> (CUTOFF HERE)
Dictionary<String, Action<Writer, Queue<DataSerializer>, System.Int32, SendTo, Peer, Peer[]>>;
Я создал Fiddle, чтобы показать точную проблему, с которой я сталкиваюсь, я знаю, что на внешние ссылки смотрят свысока, но по большей части я показал свою работу и позволил выполнить приложение с легкостью. Конечным результатом является словарь обрезки после очереди, я не уверен, почему это происходит, но это так.
Fiddle
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.IO;
using Microsoft.CSharp;
using System.Text;
public class Program
{
private static CodeCompileUnit compileUnit;
private static CodeNamespace unitNamespace;
private static CodeTypeDeclaration classDefinition;
public static void Main()
{
Console.WriteLine("Started Compile");
compileUnit = new CodeCompileUnit();
unitNamespace = new CodeNamespace("DarkSide");
classDefinition = new CodeTypeDeclaration("ExampleOfCuttoff");
classDefinition.Attributes = (MemberAttributes)24578;
SetupDocument();
CreateDictionary();
Compile();
}
public static void SetupDocument()
{
unitNamespace.Types.Add(classDefinition);
unitNamespace.Imports.Add(new CodeNamespaceImport("System.Net"));
unitNamespace.Imports.Add(new CodeNamespaceImport("System"));
unitNamespace.Imports.Add(new CodeNamespaceImport("System.Collections.Generic"));
compileUnit.Namespaces.Add(unitNamespace);
}
private static void CreateDictionary()
{
var send = new CodeMemberField("Dictionary<String, Action<Writer, Queue<DataSerializer>, System.Int32, SendTo, Peer, Peer[]>> sendMethods =",
"Dictionary<String, Action<Writer, Queue<DataSerializer>, System.Int32, SendTo, Peer, Peer[]>>");
send.Attributes = MemberAttributes.Private;
classDefinition.Members.Add(send);
}
private static void Compile()
{
var result = new StringBuilder();
var writer = new StringWriter(result);
var cCompiler = new CSharpCodeProvider();
cCompiler.GenerateCodeFromCompileUnit(compileUnit, writer, new CodeGeneratorOptions());
writer.Dispose();
Console.WriteLine("Result: "+ result);
}
}