本文整理汇总了C#中BlobBuilder.Clear方法的典型用法代码示例。如果您正苦于以下问题:C# BlobBuilder.Clear方法的具体用法?C# BlobBuilder.Clear怎么用?C# BlobBuilder.Clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BlobBuilder
的用法示例。
在下文中一共展示了BlobBuilder.Clear方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BlobEncoder_MethodSignature
public void BlobEncoder_MethodSignature()
{
var b = new BlobBuilder();
var e = new BlobEncoder(b);
var s = e.MethodSignature();
AssertEx.Equal(new byte[] { 0x00 }, b.ToArray());
Assert.Same(b, s.Builder);
Assert.False(s.HasVarArgs);
b.Clear();
s = e.MethodSignature(
convention: SignatureCallingConvention.StdCall,
genericParameterCount: 1234,
isInstanceMethod: true);
AssertEx.Equal(new byte[] { 0x32, 0x84, 0xD2 }, b.ToArray());
Assert.False(s.HasVarArgs);
b.Clear();
s = e.MethodSignature(
convention: SignatureCallingConvention.VarArgs,
genericParameterCount: 1,
isInstanceMethod: false);
AssertEx.Equal(new byte[] { 0x15, 0x01 }, b.ToArray());
Assert.True(s.HasVarArgs);
b.Clear();
Assert.Throws<ArgumentOutOfRangeException>(() => e.MethodSignature(genericParameterCount: -1));
Assert.Throws<ArgumentOutOfRangeException>(() => e.MethodSignature(genericParameterCount: ushort.MaxValue + 1));
}
示例2: BlobEncoder_MethodSpecificationSignature
public void BlobEncoder_MethodSpecificationSignature()
{
var b = new BlobBuilder();
var e = new BlobEncoder(b);
var s = e.MethodSpecificationSignature(genericArgumentCount: 0);
AssertEx.Equal(new byte[] { 0x0A, 0x00 }, b.ToArray());
Assert.Same(b, s.Builder);
b.Clear();
e.MethodSpecificationSignature(genericArgumentCount: 1234);
AssertEx.Equal(new byte[] { 0x0A, 0x84, 0xD2 }, b.ToArray());
b.Clear();
Assert.Throws<ArgumentOutOfRangeException>(() => e.MethodSpecificationSignature(genericArgumentCount: -1));
Assert.Throws<ArgumentOutOfRangeException>(() => e.MethodSpecificationSignature(genericArgumentCount: ushort.MaxValue + 1));
}
示例3: Add_Small
public void Add_Small()
{
var builder = new BlobBuilder();
var encoder = new ExceptionRegionEncoder(builder, hasSmallFormat: true);
encoder.Add(ExceptionRegionKind.Catch, 1, 2, 4, 5, catchType: MetadataTokens.TypeDefinitionHandle(1));
AssertEx.Equal(new byte[]
{
0x00, 0x00, // kind
0x01, 0x00, // try offset
0x02, // try length
0x04, 0x00, // handler offset
0x05, // handler length
0x01, 0x00, 0x00, 0x02 // catch type
}, builder.ToArray());
builder.Clear();
encoder.Add(ExceptionRegionKind.Filter, 0xffff, 0xff, 0xffff, 0xff, filterOffset: int.MaxValue);
AssertEx.Equal(new byte[]
{
0x01, 0x00, // kind
0xff, 0xff, // try offset
0xff, // try length
0xff, 0xff, // handler offset
0xff, // handler length
0xff, 0xff, 0xff, 0x7f // filter offset
}, builder.ToArray());
builder.Clear();
encoder.Add(ExceptionRegionKind.Fault, 0xffff, 0xff, 0xffff, 0xff);
AssertEx.Equal(new byte[]
{
0x04, 0x00, // kind
0xff, 0xff, // try offset
0xff, // try length
0xff, 0xff, // handler offset
0xff, // handler length
0x00, 0x00, 0x00, 0x00
}, builder.ToArray());
builder.Clear();
encoder.Add(ExceptionRegionKind.Finally, 0, 0, 0, 0);
AssertEx.Equal(new byte[]
{
0x02, 0x00, // kind
0x00, 0x00, // try offset
0x00, // try length
0x00, 0x00, // handler offset
0x00, // handler length
0x00, 0x00, 0x00, 0x00
}, builder.ToArray());
builder.Clear();
}
示例4: CountClear
public void CountClear()
{
var builder = new BlobBuilder();
Assert.Equal(0, builder.Count);
builder.WriteByte(1);
Assert.Equal(1, builder.Count);
builder.WriteInt32(4);
Assert.Equal(5, builder.Count);
builder.Clear();
Assert.Equal(0, builder.Count);
builder.WriteInt64(1);
Assert.Equal(8, builder.Count);
AssertEx.Equal(new byte[] { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, builder.ToArray());
}
示例5: SerializeTableHeader
public void SerializeTableHeader()
{
var builder = new BlobBuilder();
builder.WriteByte(0xff);
ExceptionRegionEncoder.SerializeTableHeader(builder, ExceptionRegionEncoder.MaxSmallExceptionRegions, hasSmallRegions: true);
AssertEx.Equal(new byte[]
{
0xff, 0x00, 0x00, 0x00, // padding
0x01, // flags
0xf4, // size
0x00, 0x00
}, builder.ToArray());
builder.Clear();
builder.WriteByte(0xff);
ExceptionRegionEncoder.SerializeTableHeader(builder, ExceptionRegionEncoder.MaxExceptionRegions, hasSmallRegions: false);
AssertEx.Equal(new byte[]
{
0xff, 0x00, 0x00, 0x00, // padding
0x41, // flags
0xf4, 0xff, 0xff, // size
}, builder.ToArray());
}
示例6: BlobEncoder_PermissionSetArguments
public void BlobEncoder_PermissionSetArguments()
{
var b = new BlobBuilder();
var e = new BlobEncoder(b);
var s = e.PermissionSetArguments(argumentCount: 0);
AssertEx.Equal(new byte[] { 0x00 }, b.ToArray());
Assert.Same(b, s.Builder);
b.Clear();
s = e.PermissionSetArguments(argumentCount: 1000000);
AssertEx.Equal(new byte[] { 0xC0, 0x0F, 0x42, 0x40 }, b.ToArray());
Assert.Same(b, s.Builder);
b.Clear();
Assert.Throws<ArgumentOutOfRangeException>(() => e.PermissionSetArguments(-1));
Assert.Throws<ArgumentOutOfRangeException>(() => e.PermissionSetArguments(BlobWriterImpl.MaxCompressedIntegerValue + 1));
}
示例7: BlobEncoder_LocalVariableSignature
public void BlobEncoder_LocalVariableSignature()
{
var b = new BlobBuilder();
var e = new BlobEncoder(b);
var s = e.LocalVariableSignature(variableCount: 0);
AssertEx.Equal(new byte[] { 0x07, 0x00 }, b.ToArray());
Assert.Same(b, s.Builder);
b.Clear();
s = e.LocalVariableSignature(variableCount: 1000000);
AssertEx.Equal(new byte[] { 0x07, 0xC0, 0x0F, 0x42, 0x40 }, b.ToArray());
b.Clear();
Assert.Throws<ArgumentOutOfRangeException>(() => e.LocalVariableSignature(-1));
Assert.Throws<ArgumentOutOfRangeException>(() => e.LocalVariableSignature(BlobWriterImpl.MaxCompressedIntegerValue + 1));
}
示例8: LiteralEncoder_TaggedScalar
public void LiteralEncoder_TaggedScalar()
{
var b = new BlobBuilder();
var e = new LiteralEncoder(b);
Assert.Same(b, e.Builder);
CustomAttributeElementTypeEncoder elementType;
ScalarEncoder scalar;
e.TaggedScalar(out elementType, out scalar);
AssertEx.Equal(new byte[0], b.ToArray());
Assert.Same(b, elementType.Builder);
Assert.Same(b, scalar.Builder);
b.Clear();
e.TaggedScalar(
et => Assert.Same(b, et.Builder),
s => Assert.Same(b, s.Builder));
Assert.Throws<ArgumentNullException>(() => e.TaggedScalar(null, s => { }));
Assert.Throws<ArgumentNullException>(() => e.TaggedScalar(et => { }, null));
}
示例9: NameEncoder_Name
public void NameEncoder_Name()
{
var b = new BlobBuilder();
var e = new NameEncoder(b);
Assert.Same(b, e.Builder);
e.Name("abc");
AssertEx.Equal(new byte[] { 0x03, 0x61, 0x62, 0x63 }, b.ToArray());
b.Clear();
e.Name("\ud800"); // unpaired surrogate
AssertEx.Equal(new byte[] { 0x03, 0xED, 0xA0, 0x80 }, b.ToArray());
b.Clear();
Assert.Throws<ArgumentNullException>(() => e.Name(null));
Assert.Throws<ArgumentException>(() => e.Name(""));
}
示例10: PermissionSetEncoder_AddPermission
public void PermissionSetEncoder_AddPermission()
{
var b = new BlobBuilder();
var e = new PermissionSetEncoder(b);
var s = e.AddPermission("ABCD", ImmutableArray.Create<byte>(1, 2, 3));
Assert.Same(b, s.Builder);
AssertEx.Equal(new byte[] { 0x04, 0x41, 0x42, 0x43, 0x44, 0x03, 0x01, 0x02, 0x03 }, b.ToArray());
b.Clear();
var args = new BlobBuilder();
args.WriteBytes(new byte[] { 1, 2, 3 });
s = e.AddPermission("ABCD", args);
Assert.Same(b, s.Builder);
AssertEx.Equal(new byte[] { 0x04, 0x41, 0x42, 0x43, 0x44, 0x03, 0x01, 0x02, 0x03 }, b.ToArray());
b.Clear();
s = e.AddPermission("", ImmutableArray.Create<byte>());
AssertEx.Equal(new byte[] { 0x00, 0x00 }, b.ToArray());
b.Clear();
s = e.AddPermission("", new BlobBuilder());
AssertEx.Equal(new byte[] { 0x00, 0x00 }, b.ToArray());
b.Clear();
Assert.Throws<ArgumentNullException>(() => e.AddPermission(null, ImmutableArray.Create<byte>(1)));
Assert.Throws<ArgumentNullException>(() => e.AddPermission(null, args));
Assert.Throws<ArgumentNullException>(() => e.AddPermission("A", default(ImmutableArray<byte>)));
Assert.Throws<ArgumentNullException>(() => e.AddPermission("A", null));
}
示例11: ParameterTypeEncoder_Type
public void ParameterTypeEncoder_Type()
{
var b = new BlobBuilder();
var e = new ParameterTypeEncoder(b);
var s = e.Type();
AssertEx.Equal(new byte[0], b.ToArray());
Assert.Same(b, s.Builder);
b.Clear();
s = e.Type(isByRef: true);
AssertEx.Equal(new byte[] { 0x10 }, b.ToArray());
Assert.Same(b, s.Builder);
b.Clear();
}
示例12: CustomAttributeElementTypeEncoder_Primitives
public void CustomAttributeElementTypeEncoder_Primitives()
{
var b = new BlobBuilder();
var e = new CustomAttributeElementTypeEncoder(b);
Assert.Same(b, e.Builder);
e.Boolean();
AssertEx.Equal(new byte[] { 0x02 }, b.ToArray());
b.Clear();
e.Char();
AssertEx.Equal(new byte[] { 0x03 }, b.ToArray());
b.Clear();
e.SByte();
AssertEx.Equal(new byte[] { 0x04 }, b.ToArray());
b.Clear();
e.Byte();
AssertEx.Equal(new byte[] { 0x05 }, b.ToArray());
b.Clear();
e.Int16();
AssertEx.Equal(new byte[] { 0x06 }, b.ToArray());
b.Clear();
e.UInt16();
AssertEx.Equal(new byte[] { 0x07 }, b.ToArray());
b.Clear();
e.Int32();
AssertEx.Equal(new byte[] { 0x08 }, b.ToArray());
b.Clear();
e.UInt32();
AssertEx.Equal(new byte[] { 0x09 }, b.ToArray());
b.Clear();
e.Int64();
AssertEx.Equal(new byte[] { 0x0A }, b.ToArray());
b.Clear();
e.UInt64();
AssertEx.Equal(new byte[] { 0x0B }, b.ToArray());
b.Clear();
e.Single();
AssertEx.Equal(new byte[] { 0x0C }, b.ToArray());
b.Clear();
e.Double();
AssertEx.Equal(new byte[] { 0x0D }, b.ToArray());
b.Clear();
e.String();
AssertEx.Equal(new byte[] { 0x0E }, b.ToArray());
b.Clear();
}
示例13: CustomAttributeArrayTypeEncoder_ElementType
public void CustomAttributeArrayTypeEncoder_ElementType()
{
var b = new BlobBuilder();
var e = new CustomAttributeArrayTypeEncoder(b);
Assert.Same(b, e.Builder);
var s = e.ElementType();
AssertEx.Equal(new byte[] { 0x1D }, b.ToArray());
Assert.Same(b, s.Builder);
b.Clear();
}
示例14: CustomAttributeArrayTypeEncoder_ObjectArray
public void CustomAttributeArrayTypeEncoder_ObjectArray()
{
var b = new BlobBuilder();
var e = new CustomAttributeArrayTypeEncoder(b);
Assert.Same(b, e.Builder);
e.ObjectArray();
AssertEx.Equal(new byte[] { 0x1D, 0x51 }, b.ToArray());
b.Clear();
}
示例15: NamedArgumentTypeEncoder_SZArray
public void NamedArgumentTypeEncoder_SZArray()
{
var b = new BlobBuilder();
var e = new NamedArgumentTypeEncoder(b);
Assert.Same(b, e.Builder);
e.SZArray();
AssertEx.Equal(new byte[0], b.ToArray());
b.Clear();
}