# System.Reflection.Metadata.Ecma335

``` diff
 namespace System.Reflection.Metadata.Ecma335 {
-    public struct ArrayShapeEncoder
+    public readonly struct ArrayShapeEncoder
-    public struct BlobEncoder
+    public readonly struct BlobEncoder
-    public struct CustomAttributeArrayTypeEncoder
+    public readonly struct CustomAttributeArrayTypeEncoder
-    public struct CustomAttributeElementTypeEncoder
+    public readonly struct CustomAttributeElementTypeEncoder
-    public struct CustomAttributeNamedArgumentsEncoder
+    public readonly struct CustomAttributeNamedArgumentsEncoder
-    public struct CustomModifiersEncoder
+    public readonly struct CustomModifiersEncoder
-    public struct EditAndContinueLogEntry : IEquatable<EditAndContinueLogEntry>
+    public readonly struct EditAndContinueLogEntry : IEquatable<EditAndContinueLogEntry>
-    public struct ExceptionRegionEncoder
+    public readonly struct ExceptionRegionEncoder
-    public struct FixedArgumentsEncoder
+    public readonly struct FixedArgumentsEncoder
-    public struct GenericTypeArgumentsEncoder
+    public readonly struct GenericTypeArgumentsEncoder
-    public struct InstructionEncoder
+    public readonly struct InstructionEncoder
-    public struct LabelHandle : IEquatable<LabelHandle>
+    public readonly struct LabelHandle : IEquatable<LabelHandle>
-    public struct LiteralEncoder
+    public readonly struct LiteralEncoder
-    public struct LiteralsEncoder
+    public readonly struct LiteralsEncoder
-    public struct LocalVariablesEncoder
+    public readonly struct LocalVariablesEncoder
-    public struct LocalVariableTypeEncoder
+    public readonly struct LocalVariableTypeEncoder
-    public struct MethodBodyStreamEncoder {
+    public readonly struct MethodBodyStreamEncoder {
-        public MethodBodyStreamEncoder.MethodBody AddMethodBody(int codeSize, int maxStack = 8, int exceptionRegionCount = 0, bool hasSmallExceptionRegions = true, StandaloneSignatureHandle localVariablesSignature = default(StandaloneSignatureHandle), MethodBodyAttributes attributes = (MethodBodyAttributes)(1));
+        public MethodBodyStreamEncoder.MethodBody AddMethodBody(int codeSize, int maxStack, int exceptionRegionCount, bool hasSmallExceptionRegions, StandaloneSignatureHandle localVariablesSignature, MethodBodyAttributes attributes);
+        public MethodBodyStreamEncoder.MethodBody AddMethodBody(int codeSize, int maxStack = 8, int exceptionRegionCount = 0, bool hasSmallExceptionRegions = true, StandaloneSignatureHandle localVariablesSignature = default(StandaloneSignatureHandle), MethodBodyAttributes attributes = (MethodBodyAttributes)(1), bool hasDynamicStackAllocation = false);
-        public int AddMethodBody(InstructionEncoder instructionEncoder, int maxStack = 8, StandaloneSignatureHandle localVariablesSignature = default(StandaloneSignatureHandle), MethodBodyAttributes attributes = (MethodBodyAttributes)(1));
+        public int AddMethodBody(InstructionEncoder instructionEncoder, int maxStack, StandaloneSignatureHandle localVariablesSignature, MethodBodyAttributes attributes);
+        public int AddMethodBody(InstructionEncoder instructionEncoder, int maxStack = 8, StandaloneSignatureHandle localVariablesSignature = default(StandaloneSignatureHandle), MethodBodyAttributes attributes = (MethodBodyAttributes)(1), bool hasDynamicStackAllocation = false);
-        public struct MethodBody
+        public readonly struct MethodBody
     }
-    public struct MethodSignatureEncoder
+    public readonly struct MethodSignatureEncoder
-    public struct NamedArgumentsEncoder
+    public readonly struct NamedArgumentsEncoder
-    public struct NamedArgumentTypeEncoder
+    public readonly struct NamedArgumentTypeEncoder
-    public struct NameEncoder
+    public readonly struct NameEncoder
-    public struct ParametersEncoder
+    public readonly struct ParametersEncoder
-    public struct ParameterTypeEncoder
+    public readonly struct ParameterTypeEncoder
-    public struct PermissionSetEncoder
+    public readonly struct PermissionSetEncoder
-    public struct ReturnTypeEncoder
+    public readonly struct ReturnTypeEncoder
-    public struct ScalarEncoder
+    public readonly struct ScalarEncoder
-    public struct SignatureDecoder<TType, TGenericContext>
+    public readonly struct SignatureDecoder<TType, TGenericContext>
-    public struct SignatureTypeEncoder
+    public readonly struct SignatureTypeEncoder
-    public struct VectorEncoder
+    public readonly struct VectorEncoder
 }
```

