HtmlTextWriter to String - Am I overlooking something?

前端 未结 3 1736
再見小時候
再見小時候 2020-12-17 17:16

Perhaps I\'m going about this all wrong (and please tell me if I am), but I\'m hitting my head against a wall with something that seems like a really simple concept.

3条回答
  •  一个人的身影
    2020-12-17 17:46

    Alternate method using relfection:

    private string GetString(HtmlTextWriter writer) 
    {
       // the flags to see the internal properties of the writer
       System.Reflection.BindingFlags flags = System.Reflection.BindingFlags.Default;
       flags |= System.Reflection.BindingFlags.NonPublic;
       flags |= System.Reflection.BindingFlags.Instance;
       flags |= System.Reflection.BindingFlags.FlattenHierarchy;
       flags |= System.Reflection.BindingFlags.Public;
    
       // get the information about the internal TextWriter object
       System.Reflection.FieldInfo baseWriter = writer.GetType().GetField("writer", flags);
    
       // use that info to create a StringWriter
       System.IO.StringWriter reflectedWriter = (System.IO.StringWriter)baseWriter.GetValue(writer);
    
       // now we get a StringBuilder!
       StringBuilder builder = reflectedWriter.GetStringBuilder();
    
       return builder.ToString();
    }
    

    Then it's a simple matter of re-creating the HtmlTextWriter using the string and a StringBuilder.

    This was built using a couple clues I picked up from a conversation between Tom Spink and Rotsey on EggheadCafe

提交回复
热议问题