File tree Expand file tree Collapse file tree 2 files changed +19
-3
lines changed
BsonUnitTests/DefaultSerializer/Serializers
Bson/Serialization/Serializers Expand file tree Collapse file tree 2 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -1883,7 +1883,7 @@ public override object Deserialize(
1883
1883
bsonReader . ReadNull ( ) ;
1884
1884
return null ;
1885
1885
case BsonType . String :
1886
- return new Uri ( bsonReader . ReadString ( ) ) ;
1886
+ return new Uri ( bsonReader . ReadString ( ) , UriKind . RelativeOrAbsolute ) ;
1887
1887
default :
1888
1888
var message = string . Format ( "Cannot deserialize Uri from BsonType {0}." , bsonType ) ;
1889
1889
throw new FileFormatException ( message ) ;
@@ -1909,7 +1909,7 @@ public override void Serialize(
1909
1909
}
1910
1910
else
1911
1911
{
1912
- bsonWriter . WriteString ( ( ( Uri ) value ) . AbsoluteUri ) ;
1912
+ bsonWriter . WriteString ( ( ( Uri ) value ) . OriginalString ) ;
1913
1913
}
1914
1914
}
1915
1915
}
Original file line number Diff line number Diff line change @@ -1786,14 +1786,30 @@ public void TestHttp()
1786
1786
V = new Uri ( "http://www.cnn.com" )
1787
1787
} ;
1788
1788
var json = obj . ToJson ( ) ;
1789
- var expected = "{ 'V' : 'http://www.cnn.com/ ' }" . Replace ( "'" , "\" " ) ;
1789
+ var expected = "{ 'V' : 'http://www.cnn.com' }" . Replace ( "'" , "\" " ) ;
1790
1790
Assert . AreEqual ( expected , json ) ;
1791
1791
1792
1792
var bson = obj . ToBson ( ) ;
1793
1793
var rehydrated = BsonSerializer . Deserialize < TestClass > ( bson ) ;
1794
1794
Assert . IsTrue ( bson . SequenceEqual ( rehydrated . ToBson ( ) ) ) ;
1795
1795
}
1796
1796
1797
+ [ Test ]
1798
+ public void TestRelative ( )
1799
+ {
1800
+ var obj = new TestClass
1801
+ {
1802
+ V = new Uri ( "/relative/page.html" , UriKind . RelativeOrAbsolute )
1803
+ } ;
1804
+ var json = obj . ToJson ( ) ;
1805
+ var expected = "{ 'V' : '/relative/page.html' }" . Replace ( "'" , "\" " ) ;
1806
+ Assert . AreEqual ( expected , json ) ;
1807
+
1808
+ var bson = obj . ToBson ( ) ;
1809
+ var rehydrated = BsonSerializer . Deserialize < TestClass > ( bson ) ;
1810
+ Assert . IsTrue ( bson . SequenceEqual ( rehydrated . ToBson ( ) ) ) ;
1811
+ }
1812
+
1797
1813
[ Test ]
1798
1814
public void TestMongoDB ( )
1799
1815
{
You can’t perform that action at this time.
0 commit comments