Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
bbefae3c
Commit
bbefae3c
authored
Aug 13, 2011
by
csharptest
Committed by
rogerk
Aug 13, 2011
Browse files
Options
Browse Files
Download
Plain Diff
Merged branch for issue 13
parents
25981d40
bde57ffc
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1215 additions
and
59 deletions
+1215
-59
build.csproj
build/build.csproj
+4
-0
unittest_issues.proto
protos/extest/unittest_issues.proto
+88
-0
ExtensionGenerator.cs
src/ProtoGen/ExtensionGenerator.cs
+5
-0
MessageGenerator.cs
src/ProtoGen/MessageGenerator.cs
+5
-0
NameHelpersTest.cs
src/ProtocolBuffers.Test/NameHelpersTest.cs
+10
-0
ProtocolBuffers.Test.csproj
src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
+1
-0
UnitTestExtrasIssuesProtoFile.cs
...lBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
+1036
-0
FieldDescriptor.cs
src/ProtocolBuffers/Descriptors/FieldDescriptor.cs
+6
-1
ICodedInputStream.cs
src/ProtocolBuffers/ICodedInputStream.cs
+1
-1
NameHelpers.cs
src/ProtocolBuffers/NameHelpers.cs
+53
-48
ProtocolBuffers2008.sln
src/ProtocolBuffers2008.sln
+6
-9
No files found.
build/build.csproj
View file @
bbefae3c
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
<WorkingDirectories
Include=
"$(BuildTempDirectory)"
/>
<WorkingDirectories
Include=
"$(BuildTempDirectory)"
/>
<WorkingDirectories
Include=
"$(BuildOutputDirectory)"
/>
<WorkingDirectories
Include=
"$(BuildOutputDirectory)"
/>
<Protos
Include=
"$(ProtosDirectory)\extest\unittest_issues.proto"
/>
<Protos
Include=
"$(ProtosDirectory)\extest\unittest_extras_full.proto"
/>
<Protos
Include=
"$(ProtosDirectory)\extest\unittest_extras_full.proto"
/>
<Protos
Include=
"$(ProtosDirectory)\extest\unittest_extras_lite.proto"
/>
<Protos
Include=
"$(ProtosDirectory)\extest\unittest_extras_lite.proto"
/>
<Protos
Include=
"$(ProtosDirectory)\extest\unittest_extras_xmltest.proto"
/>
<Protos
Include=
"$(ProtosDirectory)\extest\unittest_extras_xmltest.proto"
/>
...
@@ -71,6 +72,9 @@
...
@@ -71,6 +72,9 @@
<TargetDirectory>
$(SourceDirectory)\AddressBook
</TargetDirectory>
<TargetDirectory>
$(SourceDirectory)\AddressBook
</TargetDirectory>
</GeneratedSource>
</GeneratedSource>
<!-- Unit test -->
<!-- Unit test -->
<GeneratedSource
Include=
"$(BuildTempDirectory)\UnitTestExtrasIssuesProtoFile.cs"
>
<TargetDirectory>
$(SourceDirectory)\ProtocolBuffers.Test\TestProtos
</TargetDirectory>
</GeneratedSource>
<GeneratedSource
Include=
"$(BuildTempDirectory)\UnitTestXmlSerializerTestProtoFile.cs"
>
<GeneratedSource
Include=
"$(BuildTempDirectory)\UnitTestXmlSerializerTestProtoFile.cs"
>
<TargetDirectory>
$(SourceDirectory)\ProtocolBuffers.Test\TestProtos
</TargetDirectory>
<TargetDirectory>
$(SourceDirectory)\ProtocolBuffers.Test\TestProtos
</TargetDirectory>
</GeneratedSource>
</GeneratedSource>
...
...
protos/extest/unittest_issues.proto
0 → 100644
View file @
bbefae3c
// These proto descriptors have at one time been reported as an issue or defect.
// They are kept here to replicate the issue, and continue to verify the fix.
import
"google/protobuf/csharp_options.proto"
;
// Issue: Non-"Google.Protobuffers" namespace will ensure that protobuffer library types are qualified
option
(
google.protobuf.csharp_file_options
)
.
namespace
=
"UnitTest.Issues.TestProtos"
;
option
(
google.protobuf.csharp_file_options
)
.
umbrella_classname
=
"UnitTestExtrasIssuesProtoFile"
;
package
unittest_issues
;
option
optimize_for
=
SPEED
;
// The following is a representative set of features
/*
enum EnumOptions {
ONE = 0;
TWO = 1;
THREE = 2;
}
message TestBasicChild
{
repeated EnumOptions options = 3;
optional bytes binary = 4;
}
message TestBasicNoFields {
}
message TestBasicRescursive {
optional TestBasicRescursive child = 1;
}
message TestBasicMessage {
optional int64 number = 6;
repeated int32 numbers = 2;
optional string text = 3;
repeated string textlines = 700;
optional bool valid = 5;
optional TestBasicChild child = 1;
repeated group Children = 401
{
repeated EnumOptions options = 3;
optional bytes binary = 4;
}
extensions 100 to 199;
}
message TestBasicExtension {
required int32 number = 1;
}
extend TestBasicMessage {
optional EnumOptions extension_enum = 101;
optional string extension_text = 102;
repeated int32 extension_number = 103 [packed = true];
optional TestBasicExtension extension_message = 199;
}
// Issue for non-qualified type reference in new services generation
option (google.protobuf.csharp_file_options).service_generator_type = IRPCDISPATCH;
service TestGenericService {
rpc Foo(TestBasicNoFields) returns (TestBasicMessage);
rpc Bar(TestBasicNoFields) returns (TestBasicMessage);
}
*/
// Issue 13: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=13
message
A
{
optional
int32
_A
=
1
;
}
message
B
{
optional
int32
B_
=
1
;
}
message
AB
{
optional
int32
a_b
=
1
;
}
// Similar issue with numeric names
message
NumberField
{
optional
int32
_01
=
1
;
}
src/ProtoGen/ExtensionGenerator.cs
View file @
bbefae3c
...
@@ -75,6 +75,11 @@ namespace Google.ProtocolBuffers.ProtoGen
...
@@ -75,6 +75,11 @@ namespace Google.ProtocolBuffers.ProtoGen
public
void
Generate
(
TextGenerator
writer
)
public
void
Generate
(
TextGenerator
writer
)
{
{
if
(
Descriptor
.
File
.
CSharpOptions
.
ClsCompliance
&&
GetFieldConstantName
(
Descriptor
).
StartsWith
(
"_"
))
{
writer
.
WriteLine
(
"[global::System.CLSCompliant(false)]"
);
}
writer
.
WriteLine
(
"public const int {0} = {1};"
,
GetFieldConstantName
(
Descriptor
),
Descriptor
.
FieldNumber
);
writer
.
WriteLine
(
"public const int {0} = {1};"
,
GetFieldConstantName
(
Descriptor
),
Descriptor
.
FieldNumber
);
if
(
UseLiteRuntime
)
if
(
UseLiteRuntime
)
...
...
src/ProtoGen/MessageGenerator.cs
View file @
bbefae3c
...
@@ -246,6 +246,11 @@ namespace Google.ProtocolBuffers.ProtoGen
...
@@ -246,6 +246,11 @@ namespace Google.ProtocolBuffers.ProtoGen
foreach
(
FieldDescriptor
fieldDescriptor
in
Descriptor
.
Fields
)
foreach
(
FieldDescriptor
fieldDescriptor
in
Descriptor
.
Fields
)
{
{
if
(
Descriptor
.
File
.
CSharpOptions
.
ClsCompliance
&&
GetFieldConstantName
(
fieldDescriptor
).
StartsWith
(
"_"
))
{
writer
.
WriteLine
(
"[global::System.CLSCompliant(false)]"
);
}
// Rats: we lose the debug comment here :(
// Rats: we lose the debug comment here :(
writer
.
WriteLine
(
"public const int {0} = {1};"
,
GetFieldConstantName
(
fieldDescriptor
),
writer
.
WriteLine
(
"public const int {0} = {1};"
,
GetFieldConstantName
(
fieldDescriptor
),
fieldDescriptor
.
FieldNumber
);
fieldDescriptor
.
FieldNumber
);
...
...
src/ProtocolBuffers.Test/NameHelpersTest.cs
View file @
bbefae3c
...
@@ -48,6 +48,11 @@ namespace Google.ProtocolBuffers
...
@@ -48,6 +48,11 @@ namespace Google.ProtocolBuffers
Assert
.
AreEqual
(
"FooBar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"foo_bar"
));
Assert
.
AreEqual
(
"FooBar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"foo_bar"
));
Assert
.
AreEqual
(
"Foo0Bar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"Foo0bar"
));
Assert
.
AreEqual
(
"Foo0Bar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"Foo0bar"
));
Assert
.
AreEqual
(
"FooBar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"Foo_+_Bar"
));
Assert
.
AreEqual
(
"FooBar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"Foo_+_Bar"
));
Assert
.
AreEqual
(
"Bar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"__+bar"
));
Assert
.
AreEqual
(
"Bar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"bar_"
));
Assert
.
AreEqual
(
"_0Bar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"_0bar"
));
Assert
.
AreEqual
(
"_1Bar"
,
NameHelpers
.
UnderscoresToPascalCase
(
"_1_bar"
));
}
}
[
Test
]
[
Test
]
...
@@ -57,6 +62,11 @@ namespace Google.ProtocolBuffers
...
@@ -57,6 +62,11 @@ namespace Google.ProtocolBuffers
Assert
.
AreEqual
(
"fooBar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"foo_bar"
));
Assert
.
AreEqual
(
"fooBar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"foo_bar"
));
Assert
.
AreEqual
(
"foo0Bar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"Foo0bar"
));
Assert
.
AreEqual
(
"foo0Bar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"Foo0bar"
));
Assert
.
AreEqual
(
"fooBar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"Foo_+_Bar"
));
Assert
.
AreEqual
(
"fooBar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"Foo_+_Bar"
));
Assert
.
AreEqual
(
"bar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"__+bar"
));
Assert
.
AreEqual
(
"bar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"bar_"
));
Assert
.
AreEqual
(
"_0Bar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"_0bar"
));
Assert
.
AreEqual
(
"_1Bar"
,
NameHelpers
.
UnderscoresToCamelCase
(
"_1_bar"
));
}
}
[
Test
]
[
Test
]
...
...
src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
View file @
bbefae3c
...
@@ -104,6 +104,7 @@
...
@@ -104,6 +104,7 @@
<Compile
Include=
"TestProtos\UnitTestCustomOptionsProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestCustomOptionsProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestEmbedOptimizeForProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestEmbedOptimizeForProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestEmptyProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestEmptyProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestExtrasIssuesProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestGenericServices.cs"
/>
<Compile
Include=
"TestProtos\UnitTestGenericServices.cs"
/>
<Compile
Include=
"TestProtos\UnitTestGoogleSizeProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestGoogleSizeProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestGoogleSpeedProtoFile.cs"
/>
<Compile
Include=
"TestProtos\UnitTestGoogleSpeedProtoFile.cs"
/>
...
...
src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
0 → 100644
View file @
bbefae3c
// Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48. DO NOT EDIT!
using
pb
=
global
::
Google
.
ProtocolBuffers
;
using
pbc
=
global
::
Google
.
ProtocolBuffers
.
Collections
;
using
pbd
=
global
::
Google
.
ProtocolBuffers
.
Descriptors
;
using
scg
=
global
::
System
.
Collections
.
Generic
;
namespace
UnitTest.Issues.TestProtos
{
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
static
partial
class
UnitTestExtrasIssuesProtoFile
{
#
region
Extension
registration
public
static
void
RegisterAllExtensions
(
pb
::
ExtensionRegistry
registry
)
{
}
#
endregion
#
region
Static
variables
internal
static
pbd
::
MessageDescriptor
internal__static_unittest_issues_A__Descriptor
;
internal
static
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
A
,
global
::
UnitTest
.
Issues
.
TestProtos
.
A
.
Builder
>
internal__static_unittest_issues_A__FieldAccessorTable
;
internal
static
pbd
::
MessageDescriptor
internal__static_unittest_issues_B__Descriptor
;
internal
static
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
B
,
global
::
UnitTest
.
Issues
.
TestProtos
.
B
.
Builder
>
internal__static_unittest_issues_B__FieldAccessorTable
;
internal
static
pbd
::
MessageDescriptor
internal__static_unittest_issues_AB__Descriptor
;
internal
static
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
AB
,
global
::
UnitTest
.
Issues
.
TestProtos
.
AB
.
Builder
>
internal__static_unittest_issues_AB__FieldAccessorTable
;
internal
static
pbd
::
MessageDescriptor
internal__static_unittest_issues_NumberField__Descriptor
;
internal
static
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
NumberField
,
global
::
UnitTest
.
Issues
.
TestProtos
.
NumberField
.
Builder
>
internal__static_unittest_issues_NumberField__FieldAccessorTable
;
#
endregion
#
region
Descriptor
public
static
pbd
::
FileDescriptor
Descriptor
{
get
{
return
descriptor
;
}
}
private
static
pbd
::
FileDescriptor
descriptor
;
static
UnitTestExtrasIssuesProtoFile
()
{
byte
[]
descriptorData
=
global
::
System
.
Convert
.
FromBase64String
(
"ChxleHRlc3QvdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1"
+
"ZXMaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5wcm90byIPCgFB"
+
"EgoKAl9BGAEgASgFIg8KAUISCgoCQl8YASABKAUiEQoCQUISCwoDYV9iGAEg"
+
"ASgFIhoKC051bWJlckZpZWxkEgsKA18wMRgBIAEoBUJASAHCPjsKGlVuaXRU"
+
"ZXN0Lklzc3Vlcy5UZXN0UHJvdG9zEh1Vbml0VGVzdEV4dHJhc0lzc3Vlc1By"
+
"b3RvRmlsZQ=="
);
pbd
::
FileDescriptor
.
InternalDescriptorAssigner
assigner
=
delegate
(
pbd
::
FileDescriptor
root
)
{
descriptor
=
root
;
internal__static_unittest_issues_A__Descriptor
=
Descriptor
.
MessageTypes
[
0
];
internal__static_unittest_issues_A__FieldAccessorTable
=
new
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
A
,
global
::
UnitTest
.
Issues
.
TestProtos
.
A
.
Builder
>(
internal__static_unittest_issues_A__Descriptor
,
new
string
[]
{
"A_"
,
});
internal__static_unittest_issues_B__Descriptor
=
Descriptor
.
MessageTypes
[
1
];
internal__static_unittest_issues_B__FieldAccessorTable
=
new
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
B
,
global
::
UnitTest
.
Issues
.
TestProtos
.
B
.
Builder
>(
internal__static_unittest_issues_B__Descriptor
,
new
string
[]
{
"B_"
,
});
internal__static_unittest_issues_AB__Descriptor
=
Descriptor
.
MessageTypes
[
2
];
internal__static_unittest_issues_AB__FieldAccessorTable
=
new
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
AB
,
global
::
UnitTest
.
Issues
.
TestProtos
.
AB
.
Builder
>(
internal__static_unittest_issues_AB__Descriptor
,
new
string
[]
{
"AB_"
,
});
internal__static_unittest_issues_NumberField__Descriptor
=
Descriptor
.
MessageTypes
[
3
];
internal__static_unittest_issues_NumberField__FieldAccessorTable
=
new
pb
::
FieldAccess
.
FieldAccessorTable
<
global
::
UnitTest
.
Issues
.
TestProtos
.
NumberField
,
global
::
UnitTest
.
Issues
.
TestProtos
.
NumberField
.
Builder
>(
internal__static_unittest_issues_NumberField__Descriptor
,
new
string
[]
{
"_01"
,
});
pb
::
ExtensionRegistry
registry
=
pb
::
ExtensionRegistry
.
CreateInstance
();
RegisterAllExtensions
(
registry
);
global
::
Google
.
ProtocolBuffers
.
DescriptorProtos
.
CSharpOptions
.
RegisterAllExtensions
(
registry
);
return
registry
;
};
pbd
::
FileDescriptor
.
InternalBuildGeneratedFileFrom
(
descriptorData
,
new
pbd
::
FileDescriptor
[]
{
global
::
Google
.
ProtocolBuffers
.
DescriptorProtos
.
CSharpOptions
.
Descriptor
,
},
assigner
);
}
#
endregion
}
#
region
Messages
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
A
:
pb
::
GeneratedMessage
<
A
,
A
.
Builder
>
{
private
static
readonly
A
defaultInstance
=
new
Builder
().
BuildPartial
();
private
static
readonly
string
[]
_aFieldNames
=
new
string
[]
{
"_A"
};
private
static
readonly
uint
[]
_aFieldTags
=
new
uint
[]
{
8
};
public
static
A
DefaultInstance
{
get
{
return
defaultInstance
;
}
}
public
override
A
DefaultInstanceForType
{
get
{
return
defaultInstance
;
}
}
protected
override
A
ThisMessage
{
get
{
return
this
;
}
}
public
static
pbd
::
MessageDescriptor
Descriptor
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_A__Descriptor
;
}
}
protected
override
pb
::
FieldAccess
.
FieldAccessorTable
<
A
,
A
.
Builder
>
InternalFieldAccessors
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_A__FieldAccessorTable
;
}
}
public
const
int
A_FieldNumber
=
1
;
private
bool
hasA_
;
private
int
a_
;
public
bool
HasA_
{
get
{
return
hasA_
;
}
}
public
int
A_
{
get
{
return
a_
;
}
}
public
override
bool
IsInitialized
{
get
{
return
true
;
}
}
public
override
void
WriteTo
(
pb
::
ICodedOutputStream
output
)
{
int
size
=
SerializedSize
;
string
[]
field_names
=
_aFieldNames
;
if
(
hasA_
)
{
output
.
WriteInt32
(
1
,
field_names
[
0
],
A_
);
}
UnknownFields
.
WriteTo
(
output
);
}
private
int
memoizedSerializedSize
=
-
1
;
public
override
int
SerializedSize
{
get
{
int
size
=
memoizedSerializedSize
;
if
(
size
!=
-
1
)
return
size
;
size
=
0
;
if
(
hasA_
)
{
size
+=
pb
::
CodedOutputStream
.
ComputeInt32Size
(
1
,
A_
);
}
size
+=
UnknownFields
.
SerializedSize
;
memoizedSerializedSize
=
size
;
return
size
;
}
}
public
static
A
ParseFrom
(
pb
::
ByteString
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
A
ParseFrom
(
pb
::
ByteString
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
A
ParseFrom
(
byte
[]
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
A
ParseFrom
(
byte
[]
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
A
ParseFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
A
ParseFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
A
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
).
BuildParsed
();
}
public
static
A
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
,
extensionRegistry
).
BuildParsed
();
}
public
static
A
ParseFrom
(
pb
::
ICodedInputStream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
A
ParseFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
Builder
CreateBuilder
()
{
return
new
Builder
();
}
public
override
Builder
ToBuilder
()
{
return
CreateBuilder
(
this
);
}
public
override
Builder
CreateBuilderForType
()
{
return
new
Builder
();
}
public
static
Builder
CreateBuilder
(
A
prototype
)
{
return
(
Builder
)
new
Builder
().
MergeFrom
(
prototype
);
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
Builder
:
pb
::
GeneratedBuilder
<
A
,
Builder
>
{
protected
override
Builder
ThisBuilder
{
get
{
return
this
;
}
}
public
Builder
()
{}
A
result
=
new
A
();
protected
override
A
MessageBeingBuilt
{
get
{
return
result
;
}
}
public
override
Builder
Clear
()
{
result
=
new
A
();
return
this
;
}
public
override
Builder
Clone
()
{
return
new
Builder
().
MergeFrom
(
result
);
}
public
override
pbd
::
MessageDescriptor
DescriptorForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
A
.
Descriptor
;
}
}
public
override
A
DefaultInstanceForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
A
.
DefaultInstance
;
}
}
public
override
A
BuildPartial
()
{
if
(
result
==
null
)
{
throw
new
global
::
System
.
InvalidOperationException
(
"build() has already been called on this Builder"
);
}
A
returnMe
=
result
;
result
=
null
;
return
returnMe
;
}
public
override
Builder
MergeFrom
(
pb
::
IMessage
other
)
{
if
(
other
is
A
)
{
return
MergeFrom
((
A
)
other
);
}
else
{
base
.
MergeFrom
(
other
);
return
this
;
}
}
public
override
Builder
MergeFrom
(
A
other
)
{
if
(
other
==
global
::
UnitTest
.
Issues
.
TestProtos
.
A
.
DefaultInstance
)
return
this
;
if
(
other
.
HasA_
)
{
A_
=
other
.
A_
;
}
this
.
MergeUnknownFields
(
other
.
UnknownFields
);
return
this
;
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
)
{
return
MergeFrom
(
input
,
pb
::
ExtensionRegistry
.
Empty
);
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
pb
::
UnknownFieldSet
.
Builder
unknownFields
=
null
;
uint
tag
;
string
field_name
;
while
(
input
.
ReadTag
(
out
tag
,
out
field_name
))
{
if
(
tag
==
0
&&
field_name
!=
null
)
{
int
field_ordinal
=
global
::
System
.
Array
.
BinarySearch
(
_aFieldNames
,
field_name
,
global
::
System
.
StringComparer
.
Ordinal
);
if
(
field_ordinal
>=
0
)
tag
=
_aFieldTags
[
field_ordinal
];
else
{
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
continue
;
}
}
switch
(
tag
)
{
case
0
:
{
throw
pb
::
InvalidProtocolBufferException
.
InvalidTag
();
}
default
:
{
if
(
pb
::
WireFormat
.
IsEndGroupTag
(
tag
))
{
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
break
;
}
case
8
:
{
result
.
hasA_
=
input
.
ReadInt32
(
ref
result
.
a_
);
break
;
}
}
}
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
public
bool
HasA_
{
get
{
return
result
.
hasA_
;
}
}
public
int
A_
{
get
{
return
result
.
A_
;
}
set
{
SetA_
(
value
);
}
}
public
Builder
SetA_
(
int
value
)
{
result
.
hasA_
=
true
;
result
.
a_
=
value
;
return
this
;
}
public
Builder
ClearA_
()
{
result
.
hasA_
=
false
;
result
.
a_
=
0
;
return
this
;
}
}
static
A
()
{
object
.
ReferenceEquals
(
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
Descriptor
,
null
);
}
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
B
:
pb
::
GeneratedMessage
<
B
,
B
.
Builder
>
{
private
static
readonly
B
defaultInstance
=
new
Builder
().
BuildPartial
();
private
static
readonly
string
[]
_bFieldNames
=
new
string
[]
{
"B_"
};
private
static
readonly
uint
[]
_bFieldTags
=
new
uint
[]
{
8
};
public
static
B
DefaultInstance
{
get
{
return
defaultInstance
;
}
}
public
override
B
DefaultInstanceForType
{
get
{
return
defaultInstance
;
}
}
protected
override
B
ThisMessage
{
get
{
return
this
;
}
}
public
static
pbd
::
MessageDescriptor
Descriptor
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_B__Descriptor
;
}
}
protected
override
pb
::
FieldAccess
.
FieldAccessorTable
<
B
,
B
.
Builder
>
InternalFieldAccessors
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_B__FieldAccessorTable
;
}
}
public
const
int
B_FieldNumber
=
1
;
private
bool
hasB_
;
private
int
b_
;
public
bool
HasB_
{
get
{
return
hasB_
;
}
}
public
int
B_
{
get
{
return
b_
;
}
}
public
override
bool
IsInitialized
{
get
{
return
true
;
}
}
public
override
void
WriteTo
(
pb
::
ICodedOutputStream
output
)
{
int
size
=
SerializedSize
;
string
[]
field_names
=
_bFieldNames
;
if
(
hasB_
)
{
output
.
WriteInt32
(
1
,
field_names
[
0
],
B_
);
}
UnknownFields
.
WriteTo
(
output
);
}
private
int
memoizedSerializedSize
=
-
1
;
public
override
int
SerializedSize
{
get
{
int
size
=
memoizedSerializedSize
;
if
(
size
!=
-
1
)
return
size
;
size
=
0
;
if
(
hasB_
)
{
size
+=
pb
::
CodedOutputStream
.
ComputeInt32Size
(
1
,
B_
);
}
size
+=
UnknownFields
.
SerializedSize
;
memoizedSerializedSize
=
size
;
return
size
;
}
}
public
static
B
ParseFrom
(
pb
::
ByteString
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
B
ParseFrom
(
pb
::
ByteString
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
B
ParseFrom
(
byte
[]
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
B
ParseFrom
(
byte
[]
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
B
ParseFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
B
ParseFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
B
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
).
BuildParsed
();
}
public
static
B
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
,
extensionRegistry
).
BuildParsed
();
}
public
static
B
ParseFrom
(
pb
::
ICodedInputStream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
B
ParseFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
Builder
CreateBuilder
()
{
return
new
Builder
();
}
public
override
Builder
ToBuilder
()
{
return
CreateBuilder
(
this
);
}
public
override
Builder
CreateBuilderForType
()
{
return
new
Builder
();
}
public
static
Builder
CreateBuilder
(
B
prototype
)
{
return
(
Builder
)
new
Builder
().
MergeFrom
(
prototype
);
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
Builder
:
pb
::
GeneratedBuilder
<
B
,
Builder
>
{
protected
override
Builder
ThisBuilder
{
get
{
return
this
;
}
}
public
Builder
()
{}
B
result
=
new
B
();
protected
override
B
MessageBeingBuilt
{
get
{
return
result
;
}
}
public
override
Builder
Clear
()
{
result
=
new
B
();
return
this
;
}
public
override
Builder
Clone
()
{
return
new
Builder
().
MergeFrom
(
result
);
}
public
override
pbd
::
MessageDescriptor
DescriptorForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
B
.
Descriptor
;
}
}
public
override
B
DefaultInstanceForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
B
.
DefaultInstance
;
}
}
public
override
B
BuildPartial
()
{
if
(
result
==
null
)
{
throw
new
global
::
System
.
InvalidOperationException
(
"build() has already been called on this Builder"
);
}
B
returnMe
=
result
;
result
=
null
;
return
returnMe
;
}
public
override
Builder
MergeFrom
(
pb
::
IMessage
other
)
{
if
(
other
is
B
)
{
return
MergeFrom
((
B
)
other
);
}
else
{
base
.
MergeFrom
(
other
);
return
this
;
}
}
public
override
Builder
MergeFrom
(
B
other
)
{
if
(
other
==
global
::
UnitTest
.
Issues
.
TestProtos
.
B
.
DefaultInstance
)
return
this
;
if
(
other
.
HasB_
)
{
B_
=
other
.
B_
;
}
this
.
MergeUnknownFields
(
other
.
UnknownFields
);
return
this
;
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
)
{
return
MergeFrom
(
input
,
pb
::
ExtensionRegistry
.
Empty
);
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
pb
::
UnknownFieldSet
.
Builder
unknownFields
=
null
;
uint
tag
;
string
field_name
;
while
(
input
.
ReadTag
(
out
tag
,
out
field_name
))
{
if
(
tag
==
0
&&
field_name
!=
null
)
{
int
field_ordinal
=
global
::
System
.
Array
.
BinarySearch
(
_bFieldNames
,
field_name
,
global
::
System
.
StringComparer
.
Ordinal
);
if
(
field_ordinal
>=
0
)
tag
=
_bFieldTags
[
field_ordinal
];
else
{
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
continue
;
}
}
switch
(
tag
)
{
case
0
:
{
throw
pb
::
InvalidProtocolBufferException
.
InvalidTag
();
}
default
:
{
if
(
pb
::
WireFormat
.
IsEndGroupTag
(
tag
))
{
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
break
;
}
case
8
:
{
result
.
hasB_
=
input
.
ReadInt32
(
ref
result
.
b_
);
break
;
}
}
}
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
public
bool
HasB_
{
get
{
return
result
.
hasB_
;
}
}
public
int
B_
{
get
{
return
result
.
B_
;
}
set
{
SetB_
(
value
);
}
}
public
Builder
SetB_
(
int
value
)
{
result
.
hasB_
=
true
;
result
.
b_
=
value
;
return
this
;
}
public
Builder
ClearB_
()
{
result
.
hasB_
=
false
;
result
.
b_
=
0
;
return
this
;
}
}
static
B
()
{
object
.
ReferenceEquals
(
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
Descriptor
,
null
);
}
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
AB
:
pb
::
GeneratedMessage
<
AB
,
AB
.
Builder
>
{
private
static
readonly
AB
defaultInstance
=
new
Builder
().
BuildPartial
();
private
static
readonly
string
[]
_aBFieldNames
=
new
string
[]
{
"a_b"
};
private
static
readonly
uint
[]
_aBFieldTags
=
new
uint
[]
{
8
};
public
static
AB
DefaultInstance
{
get
{
return
defaultInstance
;
}
}
public
override
AB
DefaultInstanceForType
{
get
{
return
defaultInstance
;
}
}
protected
override
AB
ThisMessage
{
get
{
return
this
;
}
}
public
static
pbd
::
MessageDescriptor
Descriptor
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_AB__Descriptor
;
}
}
protected
override
pb
::
FieldAccess
.
FieldAccessorTable
<
AB
,
AB
.
Builder
>
InternalFieldAccessors
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_AB__FieldAccessorTable
;
}
}
public
const
int
AB_FieldNumber
=
1
;
private
bool
hasAB_
;
private
int
aB_
;
public
bool
HasAB_
{
get
{
return
hasAB_
;
}
}
public
int
AB_
{
get
{
return
aB_
;
}
}
public
override
bool
IsInitialized
{
get
{
return
true
;
}
}
public
override
void
WriteTo
(
pb
::
ICodedOutputStream
output
)
{
int
size
=
SerializedSize
;
string
[]
field_names
=
_aBFieldNames
;
if
(
hasAB_
)
{
output
.
WriteInt32
(
1
,
field_names
[
0
],
AB_
);
}
UnknownFields
.
WriteTo
(
output
);
}
private
int
memoizedSerializedSize
=
-
1
;
public
override
int
SerializedSize
{
get
{
int
size
=
memoizedSerializedSize
;
if
(
size
!=
-
1
)
return
size
;
size
=
0
;
if
(
hasAB_
)
{
size
+=
pb
::
CodedOutputStream
.
ComputeInt32Size
(
1
,
AB_
);
}
size
+=
UnknownFields
.
SerializedSize
;
memoizedSerializedSize
=
size
;
return
size
;
}
}
public
static
AB
ParseFrom
(
pb
::
ByteString
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
AB
ParseFrom
(
pb
::
ByteString
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
AB
ParseFrom
(
byte
[]
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
AB
ParseFrom
(
byte
[]
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
AB
ParseFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
AB
ParseFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
AB
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
).
BuildParsed
();
}
public
static
AB
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
,
extensionRegistry
).
BuildParsed
();
}
public
static
AB
ParseFrom
(
pb
::
ICodedInputStream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
AB
ParseFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
Builder
CreateBuilder
()
{
return
new
Builder
();
}
public
override
Builder
ToBuilder
()
{
return
CreateBuilder
(
this
);
}
public
override
Builder
CreateBuilderForType
()
{
return
new
Builder
();
}
public
static
Builder
CreateBuilder
(
AB
prototype
)
{
return
(
Builder
)
new
Builder
().
MergeFrom
(
prototype
);
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
Builder
:
pb
::
GeneratedBuilder
<
AB
,
Builder
>
{
protected
override
Builder
ThisBuilder
{
get
{
return
this
;
}
}
public
Builder
()
{}
AB
result
=
new
AB
();
protected
override
AB
MessageBeingBuilt
{
get
{
return
result
;
}
}
public
override
Builder
Clear
()
{
result
=
new
AB
();
return
this
;
}
public
override
Builder
Clone
()
{
return
new
Builder
().
MergeFrom
(
result
);
}
public
override
pbd
::
MessageDescriptor
DescriptorForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
AB
.
Descriptor
;
}
}
public
override
AB
DefaultInstanceForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
AB
.
DefaultInstance
;
}
}
public
override
AB
BuildPartial
()
{
if
(
result
==
null
)
{
throw
new
global
::
System
.
InvalidOperationException
(
"build() has already been called on this Builder"
);
}
AB
returnMe
=
result
;
result
=
null
;
return
returnMe
;
}
public
override
Builder
MergeFrom
(
pb
::
IMessage
other
)
{
if
(
other
is
AB
)
{
return
MergeFrom
((
AB
)
other
);
}
else
{
base
.
MergeFrom
(
other
);
return
this
;
}
}
public
override
Builder
MergeFrom
(
AB
other
)
{
if
(
other
==
global
::
UnitTest
.
Issues
.
TestProtos
.
AB
.
DefaultInstance
)
return
this
;
if
(
other
.
HasAB_
)
{
AB_
=
other
.
AB_
;
}
this
.
MergeUnknownFields
(
other
.
UnknownFields
);
return
this
;
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
)
{
return
MergeFrom
(
input
,
pb
::
ExtensionRegistry
.
Empty
);
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
pb
::
UnknownFieldSet
.
Builder
unknownFields
=
null
;
uint
tag
;
string
field_name
;
while
(
input
.
ReadTag
(
out
tag
,
out
field_name
))
{
if
(
tag
==
0
&&
field_name
!=
null
)
{
int
field_ordinal
=
global
::
System
.
Array
.
BinarySearch
(
_aBFieldNames
,
field_name
,
global
::
System
.
StringComparer
.
Ordinal
);
if
(
field_ordinal
>=
0
)
tag
=
_aBFieldTags
[
field_ordinal
];
else
{
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
continue
;
}
}
switch
(
tag
)
{
case
0
:
{
throw
pb
::
InvalidProtocolBufferException
.
InvalidTag
();
}
default
:
{
if
(
pb
::
WireFormat
.
IsEndGroupTag
(
tag
))
{
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
break
;
}
case
8
:
{
result
.
hasAB_
=
input
.
ReadInt32
(
ref
result
.
aB_
);
break
;
}
}
}
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
public
bool
HasAB_
{
get
{
return
result
.
hasAB_
;
}
}
public
int
AB_
{
get
{
return
result
.
AB_
;
}
set
{
SetAB_
(
value
);
}
}
public
Builder
SetAB_
(
int
value
)
{
result
.
hasAB_
=
true
;
result
.
aB_
=
value
;
return
this
;
}
public
Builder
ClearAB_
()
{
result
.
hasAB_
=
false
;
result
.
aB_
=
0
;
return
this
;
}
}
static
AB
()
{
object
.
ReferenceEquals
(
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
Descriptor
,
null
);
}
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
NumberField
:
pb
::
GeneratedMessage
<
NumberField
,
NumberField
.
Builder
>
{
private
static
readonly
NumberField
defaultInstance
=
new
Builder
().
BuildPartial
();
private
static
readonly
string
[]
_numberFieldFieldNames
=
new
string
[]
{
"_01"
};
private
static
readonly
uint
[]
_numberFieldFieldTags
=
new
uint
[]
{
8
};
public
static
NumberField
DefaultInstance
{
get
{
return
defaultInstance
;
}
}
public
override
NumberField
DefaultInstanceForType
{
get
{
return
defaultInstance
;
}
}
protected
override
NumberField
ThisMessage
{
get
{
return
this
;
}
}
public
static
pbd
::
MessageDescriptor
Descriptor
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_NumberField__Descriptor
;
}
}
protected
override
pb
::
FieldAccess
.
FieldAccessorTable
<
NumberField
,
NumberField
.
Builder
>
InternalFieldAccessors
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
internal__static_unittest_issues_NumberField__FieldAccessorTable
;
}
}
[
global
::
System
.
CLSCompliant
(
false
)]
public
const
int
_01FieldNumber
=
1
;
private
bool
has_01
;
private
int
_01_
;
public
bool
Has_01
{
get
{
return
has_01
;
}
}
[
global
::
System
.
CLSCompliant
(
false
)]
public
int
_01
{
get
{
return
_01_
;
}
}
public
override
bool
IsInitialized
{
get
{
return
true
;
}
}
public
override
void
WriteTo
(
pb
::
ICodedOutputStream
output
)
{
int
size
=
SerializedSize
;
string
[]
field_names
=
_numberFieldFieldNames
;
if
(
has_01
)
{
output
.
WriteInt32
(
1
,
field_names
[
0
],
_01
);
}
UnknownFields
.
WriteTo
(
output
);
}
private
int
memoizedSerializedSize
=
-
1
;
public
override
int
SerializedSize
{
get
{
int
size
=
memoizedSerializedSize
;
if
(
size
!=
-
1
)
return
size
;
size
=
0
;
if
(
has_01
)
{
size
+=
pb
::
CodedOutputStream
.
ComputeInt32Size
(
1
,
_01
);
}
size
+=
UnknownFields
.
SerializedSize
;
memoizedSerializedSize
=
size
;
return
size
;
}
}
public
static
NumberField
ParseFrom
(
pb
::
ByteString
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
NumberField
ParseFrom
(
pb
::
ByteString
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
NumberField
ParseFrom
(
byte
[]
data
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
)).
BuildParsed
();
}
public
static
NumberField
ParseFrom
(
byte
[]
data
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
data
,
extensionRegistry
)).
BuildParsed
();
}
public
static
NumberField
ParseFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
NumberField
ParseFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
NumberField
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
).
BuildParsed
();
}
public
static
NumberField
ParseDelimitedFrom
(
global
::
System
.
IO
.
Stream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
CreateBuilder
().
MergeDelimitedFrom
(
input
,
extensionRegistry
).
BuildParsed
();
}
public
static
NumberField
ParseFrom
(
pb
::
ICodedInputStream
input
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
)).
BuildParsed
();
}
public
static
NumberField
ParseFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
return
((
Builder
)
CreateBuilder
().
MergeFrom
(
input
,
extensionRegistry
)).
BuildParsed
();
}
public
static
Builder
CreateBuilder
()
{
return
new
Builder
();
}
public
override
Builder
ToBuilder
()
{
return
CreateBuilder
(
this
);
}
public
override
Builder
CreateBuilderForType
()
{
return
new
Builder
();
}
public
static
Builder
CreateBuilder
(
NumberField
prototype
)
{
return
(
Builder
)
new
Builder
().
MergeFrom
(
prototype
);
}
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"ProtoGen"
,
"2.3.0.277"
)]
public
sealed
partial
class
Builder
:
pb
::
GeneratedBuilder
<
NumberField
,
Builder
>
{
protected
override
Builder
ThisBuilder
{
get
{
return
this
;
}
}
public
Builder
()
{}
NumberField
result
=
new
NumberField
();
protected
override
NumberField
MessageBeingBuilt
{
get
{
return
result
;
}
}
public
override
Builder
Clear
()
{
result
=
new
NumberField
();
return
this
;
}
public
override
Builder
Clone
()
{
return
new
Builder
().
MergeFrom
(
result
);
}
public
override
pbd
::
MessageDescriptor
DescriptorForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
NumberField
.
Descriptor
;
}
}
public
override
NumberField
DefaultInstanceForType
{
get
{
return
global
::
UnitTest
.
Issues
.
TestProtos
.
NumberField
.
DefaultInstance
;
}
}
public
override
NumberField
BuildPartial
()
{
if
(
result
==
null
)
{
throw
new
global
::
System
.
InvalidOperationException
(
"build() has already been called on this Builder"
);
}
NumberField
returnMe
=
result
;
result
=
null
;
return
returnMe
;
}
public
override
Builder
MergeFrom
(
pb
::
IMessage
other
)
{
if
(
other
is
NumberField
)
{
return
MergeFrom
((
NumberField
)
other
);
}
else
{
base
.
MergeFrom
(
other
);
return
this
;
}
}
public
override
Builder
MergeFrom
(
NumberField
other
)
{
if
(
other
==
global
::
UnitTest
.
Issues
.
TestProtos
.
NumberField
.
DefaultInstance
)
return
this
;
if
(
other
.
Has_01
)
{
_01
=
other
.
_01
;
}
this
.
MergeUnknownFields
(
other
.
UnknownFields
);
return
this
;
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
)
{
return
MergeFrom
(
input
,
pb
::
ExtensionRegistry
.
Empty
);
}
public
override
Builder
MergeFrom
(
pb
::
ICodedInputStream
input
,
pb
::
ExtensionRegistry
extensionRegistry
)
{
pb
::
UnknownFieldSet
.
Builder
unknownFields
=
null
;
uint
tag
;
string
field_name
;
while
(
input
.
ReadTag
(
out
tag
,
out
field_name
))
{
if
(
tag
==
0
&&
field_name
!=
null
)
{
int
field_ordinal
=
global
::
System
.
Array
.
BinarySearch
(
_numberFieldFieldNames
,
field_name
,
global
::
System
.
StringComparer
.
Ordinal
);
if
(
field_ordinal
>=
0
)
tag
=
_numberFieldFieldTags
[
field_ordinal
];
else
{
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
continue
;
}
}
switch
(
tag
)
{
case
0
:
{
throw
pb
::
InvalidProtocolBufferException
.
InvalidTag
();
}
default
:
{
if
(
pb
::
WireFormat
.
IsEndGroupTag
(
tag
))
{
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
if
(
unknownFields
==
null
)
{
unknownFields
=
pb
::
UnknownFieldSet
.
CreateBuilder
(
this
.
UnknownFields
);
}
ParseUnknownField
(
input
,
unknownFields
,
extensionRegistry
,
tag
,
field_name
);
break
;
}
case
8
:
{
result
.
has_01
=
input
.
ReadInt32
(
ref
result
.
_01_
);
break
;
}
}
}
if
(
unknownFields
!=
null
)
{
this
.
UnknownFields
=
unknownFields
.
Build
();
}
return
this
;
}
public
bool
Has_01
{
get
{
return
result
.
has_01
;
}
}
[
global
::
System
.
CLSCompliant
(
false
)]
public
int
_01
{
get
{
return
result
.
_01
;
}
set
{
Set_01
(
value
);
}
}
[
global
::
System
.
CLSCompliant
(
false
)]
public
Builder
Set_01
(
int
value
)
{
result
.
has_01
=
true
;
result
.
_01_
=
value
;
return
this
;
}
public
Builder
Clear_01
()
{
result
.
has_01
=
false
;
result
.
_01_
=
0
;
return
this
;
}
}
static
NumberField
()
{
object
.
ReferenceEquals
(
global
::
UnitTest
.
Issues
.
TestProtos
.
UnitTestExtrasIssuesProtoFile
.
Descriptor
,
null
);
}
}
#
endregion
}
src/ProtocolBuffers/Descriptors/FieldDescriptor.cs
View file @
bbefae3c
...
@@ -352,7 +352,12 @@ namespace Google.ProtocolBuffers.Descriptors
...
@@ -352,7 +352,12 @@ namespace Google.ProtocolBuffers.Descriptors
public
bool
IsCLSCompliant
public
bool
IsCLSCompliant
{
{
get
{
return
mappedType
!=
MappedType
.
UInt32
&&
mappedType
!=
MappedType
.
UInt64
;
}
get
{
return
mappedType
!=
MappedType
.
UInt32
&&
mappedType
!=
MappedType
.
UInt64
&&
!
NameHelpers
.
UnderscoresToPascalCase
(
Name
).
StartsWith
(
"_"
);
}
}
}
public
int
FieldNumber
public
int
FieldNumber
...
...
src/ProtocolBuffers/ICodedInputStream.cs
View file @
bbefae3c
...
@@ -177,7 +177,7 @@ namespace Google.ProtocolBuffers
...
@@ -177,7 +177,7 @@ namespace Google.ProtocolBuffers
/// <summary>
/// <summary>
/// Reads an array of primitive values into the list, if the wire-type of fieldTag is length-prefixed and the
/// Reads an array of primitive values into the list, if the wire-type of fieldTag is length-prefixed and the
/// type is num
b
eric, it will read a packed array.
/// type is numeric, it will read a packed array.
/// </summary>
/// </summary>
[
CLSCompliant
(
false
)]
[
CLSCompliant
(
false
)]
void
ReadPrimitiveArray
(
FieldType
fieldType
,
uint
fieldTag
,
string
fieldName
,
ICollection
<
object
>
list
);
void
ReadPrimitiveArray
(
FieldType
fieldType
,
uint
fieldTag
,
string
fieldName
,
ICollection
<
object
>
list
);
...
...
src/ProtocolBuffers/NameHelpers.cs
View file @
bbefae3c
...
@@ -34,8 +34,8 @@
...
@@ -34,8 +34,8 @@
#endregion
#endregion
using
System
.Globalization
;
using
System
;
using
System.Text
;
using
System.Text
.RegularExpressions
;
namespace
Google.ProtocolBuffers
namespace
Google.ProtocolBuffers
{
{
...
@@ -44,69 +44,74 @@ namespace Google.ProtocolBuffers
...
@@ -44,69 +44,74 @@ namespace Google.ProtocolBuffers
/// </summary>
/// </summary>
public
class
NameHelpers
public
class
NameHelpers
{
{
/// <summary>
/// All characters that are not alpha-numeric
/// </summary>
private
static
readonly
Regex
NonAlphaNumericCharacters
=
new
Regex
(
@"[^a-zA-Z0-9]+"
);
/// <summary>
/// Matches lower-case character that follow either an underscore, or a number
/// </summary>
private
static
readonly
Regex
UnderscoreOrNumberWithLowerCase
=
new
Regex
(
@"[0-9_][a-z]"
);
/// <summary>
/// Removes non alpha numeric characters while capitalizing letters that follow
/// a number or underscore. The first letter is always upper case.
/// </summary>
public
static
string
UnderscoresToPascalCase
(
string
input
)
public
static
string
UnderscoresToPascalCase
(
string
input
)
{
{
return
UnderscoresToPascalOrCamelCase
(
input
,
true
);
string
name
=
UnderscoresToUpperCase
(
input
);
}
public
static
string
UnderscoresToCamelCase
(
string
input
)
// Pascal case always begins with upper-case letter
if
(
Char
.
IsLower
(
name
[
0
]))
{
{
return
UnderscoresToPascalOrCamelCase
(
input
,
false
);
char
[]
chars
=
name
.
ToCharArray
();
chars
[
0
]
=
char
.
ToUpper
(
chars
[
0
]);
return
new
string
(
chars
);
}
return
name
;
}
}
/// <summary>
/// <summary>
/// Converts a string to Pascal or Camel case. The first letter is capitalized or
/// Removes non alpha numeric characters while capitalizing letters that follow
/// lower-cased depending on <paramref name="pascal"/> is true.
/// a number or underscore. The first letter is always lower case.
/// After the first letter, any punctuation is removed but triggers capitalization
/// of the next letter. Digits are preserved but trigger capitalization of the next
/// letter.
/// All capitalisation is done in the invariant culture.
/// </summary>
/// </summary>
private
static
string
UnderscoresToPascalOrCamelCase
(
string
input
,
bool
pascal
)
public
static
string
UnderscoresToCamelCase
(
string
input
)
{
StringBuilder
result
=
new
StringBuilder
();
bool
capitaliseNext
=
pascal
;
for
(
int
i
=
0
;
i
<
input
.
Length
;
i
++)
{
char
c
=
input
[
i
];
if
(
'a'
<=
c
&&
c
<=
'z'
)
{
if
(
capitaliseNext
)
{
{
result
.
Append
(
char
.
ToUpper
(
c
,
CultureInfo
.
InvariantCulture
));
string
name
=
UnderscoresToUpperCase
(
input
);
}
else
// Camel case always begins with lower-case letter
if
(
Char
.
IsUpper
(
name
[
0
]))
{
{
result
.
Append
(
c
);
char
[]
chars
=
name
.
ToCharArray
();
chars
[
0
]
=
char
.
ToLower
(
chars
[
0
]);
return
new
string
(
chars
);
}
}
capitaliseNext
=
fals
e
;
return
nam
e
;
}
}
else
if
(
'A'
<=
c
&&
c
<=
'Z'
)
{
/// <summary>
if
(
i
==
0
&&
!
pascal
)
/// Capitalizes any characters following an '_' or a number '0' - '9' and removes
{
/// all non alpha-numeric characters. If the resulting string begins with a number
// Force first letter to lower-case unless explicitly told to
/// an '_' will be prefixed.
// capitalize it.
/// </summary>
result
.
Append
(
char
.
ToLower
(
c
,
CultureInfo
.
InvariantCulture
));
private
static
string
UnderscoresToUpperCase
(
string
input
)
}
else
{
{
// Capital letters after the first are left as-is.
string
name
=
UnderscoreOrNumberWithLowerCase
.
Replace
(
input
,
x
=>
x
.
Value
.
ToUpper
());
result
.
Append
(
c
);
name
=
NonAlphaNumericCharacters
.
Replace
(
name
,
String
.
Empty
);
}
capitaliseNext
=
false
;
if
(
name
.
Length
==
0
)
}
else
if
(
'0'
<=
c
&&
c
<=
'9'
)
{
{
result
.
Append
(
c
);
throw
new
ArgumentException
(
String
.
Format
(
"The field name '{0}' is invalid."
,
input
));
capitaliseNext
=
true
;
}
}
else
// Fields can not start with a number
if
(
Char
.
IsNumber
(
name
[
0
]))
{
{
capitaliseNext
=
true
;
name
=
'_'
+
name
;
}
}
}
return
result
.
ToString
();
return
name
;
}
}
internal
static
string
StripProto
(
string
text
)
internal
static
string
StripProto
(
string
text
)
...
...
src/ProtocolBuffers2008.sln
View file @
bbefae3c
...
@@ -23,6 +23,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unittest", "unittest", "{C8
...
@@ -23,6 +23,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unittest", "unittest", "{C8
..\protos\extest\unittest_generic_services.proto = ..\protos\extest\unittest_generic_services.proto
..\protos\extest\unittest_generic_services.proto = ..\protos\extest\unittest_generic_services.proto
..\protos\google\protobuf\unittest_import.proto = ..\protos\google\protobuf\unittest_import.proto
..\protos\google\protobuf\unittest_import.proto = ..\protos\google\protobuf\unittest_import.proto
..\protos\google\protobuf\unittest_import_lite.proto = ..\protos\google\protobuf\unittest_import_lite.proto
..\protos\google\protobuf\unittest_import_lite.proto = ..\protos\google\protobuf\unittest_import_lite.proto
..\protos\extest\unittest_issues.proto = ..\protos\extest\unittest_issues.proto
..\protos\google\protobuf\unittest_lite.proto = ..\protos\google\protobuf\unittest_lite.proto
..\protos\google\protobuf\unittest_lite.proto = ..\protos\google\protobuf\unittest_lite.proto
..\protos\google\protobuf\unittest_lite_imports_nonlite.proto = ..\protos\google\protobuf\unittest_lite_imports_nonlite.proto
..\protos\google\protobuf\unittest_lite_imports_nonlite.proto = ..\protos\google\protobuf\unittest_lite_imports_nonlite.proto
..\protos\google\protobuf\unittest_mset.proto = ..\protos\google\protobuf\unittest_mset.proto
..\protos\google\protobuf\unittest_mset.proto = ..\protos\google\protobuf\unittest_mset.proto
...
@@ -67,7 +68,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{66ED1950
...
@@ -67,7 +68,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{66ED1950
..\build\RunBenchmarks.bat = ..\build\RunBenchmarks.bat
..\build\RunBenchmarks.bat = ..\build\RunBenchmarks.bat
EndProjectSection
EndProjectSection
EndProject
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj", "{231391AF-449C-4
a
39-986C-AD7F270F4750}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj", "{231391AF-449C-4
A
39-986C-AD7F270F4750}"
EndProject
EndProject
Global
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
GlobalSection(SolutionConfigurationPlatforms) = preSolution
...
@@ -147,14 +148,10 @@ Global
...
@@ -147,14 +148,10 @@ Global
{EEFFED24-3750-4567-9A23-1DB676A15610}.Release_Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
{EEFFED24-3750-4567-9A23-1DB676A15610}.Release_Silverlight2|Any CPU.ActiveCfg = Release|Any CPU
{EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
{EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Debug_Silverlight2|Any CPU.ActiveCfg = Debug_Silverlight2|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Debug_Silverlight2|Any CPU.ActiveCfg = Debug_Silverlight2|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Debug_Silverlight2|Any CPU.Build.0 = Debug_Silverlight2|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Release_Silverlight2|Any CPU.ActiveCfg = Release_Silverlight2|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Debug|Any CPU.Build.0 = Debug|Any CPU
{231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.ActiveCfg = Release|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Release_Silverlight2|Any CPU.ActiveCfg = Release_Silverlight2|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Release|Any CPU.ActiveCfg = Release|Any CPU
{231391AF-449C-4a39-986C-AD7F270F4750}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
HideSolutionNode = FALSE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment