public override void WriteString(string value)
{
var buf = System.Text.Encoding.UTF8.GetBytes(value);
if (buf.Length<=0xFFFF) {
WriteMarker(AMF0Marker.String);
WriteUI16(buf.Length);
BaseStream.Write(buf, 0, buf.Length);
}
else {
WriteMarker(AMF0Marker.LongString);
WriteUI32(buf.Length);
BaseStream.Write(buf, 0, buf.Length);
}
}
private static byte[] CreateBody(string property_name, IEnumerable<AMFValue> arguments) { var s = new MemoryStream(); using (var writer=new AMF0Writer(s)) { writer.WriteString(property_name); foreach (var arg in arguments) { writer.WriteValue(arg); } } return s.ToArray(); }