本文整理汇总了C#中MongoDB.Bson.IO.BsonReader.ReadObjectId方法的典型用法代码示例。如果您正苦于以下问题:C# BsonReader.ReadObjectId方法的具体用法?C# BsonReader.ReadObjectId怎么用?C# BsonReader.ReadObjectId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MongoDB.Bson.IO.BsonReader
的用法示例。
在下文中一共展示了BsonReader.ReadObjectId方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Deserialize
// public methods
/// <summary>
/// Deserializes an object from a BsonReader.
/// </summary>
/// <param name="bsonReader">The BsonReader.</param>
/// <param name="nominalType">The nominal type of the object.</param>
/// <param name="actualType">The actual type of the object.</param>
/// <param name="options">The serialization options.</param>
/// <returns>An object.</returns>
public override object Deserialize(
BsonReader bsonReader,
Type nominalType,
Type actualType,
IBsonSerializationOptions options)
{
VerifyTypes(nominalType, actualType, typeof(ObjectId));
BsonType bsonType = bsonReader.GetCurrentBsonType();
switch (bsonType)
{
case BsonType.ObjectId:
int timestamp;
int machine;
short pid;
int increment;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
return new ObjectId(timestamp, machine, pid, increment);
case BsonType.String:
return ObjectId.Parse(bsonReader.ReadString());
default:
var message = string.Format("Cannot deserialize ObjectId from BsonType {0}.", bsonType);
throw new FileFormatException(message);
}
}
示例2: Deserialize
public override object Deserialize(BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options)
{
// read an ObjectId from the database but convert it to a string before returning it
int timestamp, machine, increment;
short pid;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
return new ObjectId(timestamp, machine, pid, increment).ToString();
}
示例3: Deserialize
// public methods
/// <summary>
/// Deserializes an object from a BsonReader.
/// </summary>
/// <param name="bsonReader">The BsonReader.</param>
/// <param name="nominalType">The nominal type of the object.</param>
/// <param name="actualType">The actual type of the object.</param>
/// <param name="options">The serialization options.</param>
/// <returns>An object.</returns>
public override object Deserialize(
BsonReader bsonReader,
Type nominalType,
Type actualType,
IBsonSerializationOptions options)
{
VerifyTypes(nominalType, actualType, typeof(BsonObjectId));
var bsonType = bsonReader.GetCurrentBsonType();
switch (bsonType)
{
case BsonType.ObjectId:
return new BsonObjectId(bsonReader.ReadObjectId());
default:
var message = string.Format("Cannot deserialize BsonObjectId from BsonType {0}.", bsonType);
throw new Exception(message);
}
}
示例4: Deserialize
// public methods
/// <summary>
/// Deserializes an object from a BsonReader.
/// </summary>
/// <param name="bsonReader">The BsonReader.</param>
/// <param name="nominalType">The nominal type of the object.</param>
/// <param name="actualType">The actual type of the object.</param>
/// <param name="options">The serialization options.</param>
/// <returns>An object.</returns>
public override object Deserialize(
BsonReader bsonReader,
Type nominalType,
Type actualType,
IBsonSerializationOptions options)
{
VerifyTypes(nominalType, actualType, typeof(string));
var representationSerializationOptions = EnsureSerializationOptions<RepresentationSerializationOptions>(options);
var bsonType = bsonReader.GetCurrentBsonType();
if (bsonType == BsonType.Null)
{
bsonReader.ReadNull();
return null;
}
else
{
switch (bsonType)
{
case BsonType.ObjectId:
if (representationSerializationOptions.Representation == BsonType.ObjectId)
{
int timestamp, machine, increment;
short pid;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
var objectId = new ObjectId(timestamp, machine, pid, increment);
return objectId.ToString();
}
else
{
goto default;
}
case BsonType.String:
return bsonReader.ReadString();
case BsonType.Symbol:
return bsonReader.ReadSymbol();
default:
var message = string.Format("Cannot deserialize string from BsonType {0}.", bsonType);
throw new FileFormatException(message);
}
}
}
示例5: Deserialize
public override object Deserialize(BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options)
{
switch (bsonReader.CurrentBsonType)
{
case BsonType.ObjectId:
int timestamp;
int machine;
short pid;
int increment;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
var id = new ObjectId(timestamp, machine, pid, increment);
return new Identity(id.ToByteArray());
case BsonType.String:
return new Identity(bsonReader.ReadString());
default:
throw new FormatException(string.Format("Cannot deserialize Identity from BsonType: {0}", bsonReader.CurrentBsonType));
}
}
示例6: TestObjectIdTenGen
public void TestObjectIdTenGen() {
var json = "ObjectId(\"4d0ce088e447ad08b4721a37\")";
using (bsonReader = BsonReader.Create(json)) {
Assert.AreEqual(BsonType.ObjectId, bsonReader.ReadBsonType());
int timestamp, machine, increment;
short pid;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
var objectId = new ObjectId(timestamp, machine, pid, increment);
Assert.AreEqual("4d0ce088e447ad08b4721a37", objectId.ToString());
Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
}
var settings = new JsonWriterSettings { OutputMode = JsonOutputMode.TenGen };
Assert.AreEqual(json, BsonSerializer.Deserialize<ObjectId>(new StringReader(json)).ToJson(settings));
}
示例7: TestObjectId
public void TestObjectId()
{
var json = "{ \"$oid\" : \"4d0ce088e447ad08b4721a37\" }";
using (bsonReader = BsonReader.Create(json)) {
Assert.AreEqual(BsonType.ObjectId, bsonReader.ReadBsonType());
int timestamp, machine, increment;
short pid;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
var objectId = new ObjectId(timestamp, machine, pid, increment);
Assert.AreEqual("4d0ce088e447ad08b4721a37", objectId.ToString());
Assert.AreEqual(BsonReadState.Done, bsonReader.ReadState);
}
Assert.AreEqual(json, BsonSerializer.Deserialize<ObjectId>(new StringReader(json)).ToJson());
}
示例8: TestObjectIdTenGen
public void TestObjectIdTenGen()
{
var json = "ObjectId(\"4d0ce088e447ad08b4721a37\")";
using (_bsonReader = new JsonReader(json))
{
Assert.AreEqual(BsonType.ObjectId, _bsonReader.ReadBsonType());
var objectId = _bsonReader.ReadObjectId();
Assert.AreEqual("4d0ce088e447ad08b4721a37", objectId.ToString());
Assert.AreEqual(BsonReaderState.Done, _bsonReader.State);
}
var settings = new JsonWriterSettings { OutputMode = JsonOutputMode.TenGen };
Assert.AreEqual(json, BsonSerializer.Deserialize<ObjectId>(json).ToJson(settings));
}
示例9: TestObjectIdShell
public void TestObjectIdShell()
{
var json = "ObjectId(\"4d0ce088e447ad08b4721a37\")";
using (_bsonReader = new JsonReader(json))
{
Assert.AreEqual(BsonType.ObjectId, _bsonReader.ReadBsonType());
var objectId = _bsonReader.ReadObjectId();
Assert.AreEqual("4d0ce088e447ad08b4721a37", objectId.ToString());
Assert.AreEqual(BsonReaderState.Done, _bsonReader.State);
}
Assert.AreEqual(json, BsonSerializer.Deserialize<ObjectId>(json).ToJson());
}
示例10: Deserialize
public override object Deserialize(
BsonReader bsonReader,
Type nominalType
)
{
int timestamp;
int machine;
short pid;
int increment;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
return new ObjectId(timestamp, machine, pid, increment);
}
示例11: TestObjectIdStrict
public void TestObjectIdStrict()
{
var json = "{ \"$oid\" : \"4d0ce088e447ad08b4721a37\" }";
using (_bsonReader = BsonReader.Create(json))
{
Assert.AreEqual(BsonType.ObjectId, _bsonReader.ReadBsonType());
var objectId = _bsonReader.ReadObjectId();
Assert.AreEqual("4d0ce088e447ad08b4721a37", objectId.ToString());
Assert.AreEqual(BsonReaderState.Done, _bsonReader.State);
}
var jsonSettings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
Assert.AreEqual(json, BsonSerializer.Deserialize<ObjectId>(new StringReader(json)).ToJson(jsonSettings));
}
示例12: Deserialize
/// <summary>
/// Deserializes an object from a BsonReader.
/// </summary>
/// <param name="bsonReader">The BsonReader.</param>
/// <param name="nominalType">The nominal type of the object.</param>
/// <param name="options">The serialization options.</param>
/// <returns>An object.</returns>
public override object Deserialize(
BsonReader bsonReader,
Type nominalType,
IBsonSerializationOptions options
) {
var bsonType = bsonReader.CurrentBsonType;
if (bsonType == BsonType.Null) {
bsonReader.ReadNull();
return null;
} else {
var representation = (options == null) ? BsonType.String : ((RepresentationSerializationOptions) options).Representation;
switch (representation) {
case BsonType.ObjectId:
int timestamp, machine, increment;
short pid;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
var objectId = new ObjectId(timestamp, machine, pid, increment);
return objectId.ToString();
case BsonType.String:
return bsonReader.ReadString();
case BsonType.Symbol:
return bsonReader.ReadSymbol();
default:
var message = string.Format("Cannot deserialize string from BsonType: {0}", bsonType);
throw new FileFormatException(message);
}
}
}
示例13: Deserialize
public override object Deserialize(
BsonReader bsonReader,
Type nominalType
)
{
var bsonType = bsonReader.CurrentBsonType;
if (bsonType == BsonType.Null) {
bsonReader.ReadNull();
return null;
} else {
int timestamp;
int machine;
short pid;
int increment;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
return new BsonObjectId(timestamp, machine, pid, increment);
}
}
示例14: Deserialize
public override object Deserialize(
BsonReader bsonReader,
Type nominalType
)
{
BsonType bsonType = bsonReader.CurrentBsonType;
if (bsonType == BsonType.ObjectId) {
int timestamp;
int machine;
short pid;
int increment;
bsonReader.ReadObjectId(out timestamp, out machine, out pid, out increment);
return new ObjectId(timestamp, machine, pid, increment);
} else if (bsonType == BsonType.String) {
return ObjectId.Parse(bsonReader.ReadString());
} else {
var message = string.Format("Cannot deserialize ObjectId from BsonType: {0}", bsonType);
throw new FileFormatException(message);
}
}
示例15: ReadObject
//_120509_173140 keep consistent
static object ReadObject(BsonReader bsonReader)
{
switch (bsonReader.GetCurrentBsonType())
{
case BsonType.Array: return ReadArray(bsonReader); // replacement
case BsonType.Binary: var binary = BsonSerializer.Deserialize<BsonValue>(bsonReader); return BsonTypeMapper.MapToDotNetValue(binary) ?? binary; // byte[] or Guid else self
case BsonType.Boolean: return bsonReader.ReadBoolean();
case BsonType.DateTime: return BsonUtils.ToDateTimeFromMillisecondsSinceEpoch(bsonReader.ReadDateTime());
case BsonType.Document: return ReadCustomObject(bsonReader); // replacement
case BsonType.Double: return bsonReader.ReadDouble();
case BsonType.Int32: return bsonReader.ReadInt32();
case BsonType.Int64: return bsonReader.ReadInt64();
case BsonType.Null: bsonReader.ReadNull(); return null;
case BsonType.ObjectId: return bsonReader.ReadObjectId();
case BsonType.String: return bsonReader.ReadString();
default: return BsonSerializer.Deserialize<BsonValue>(bsonReader);
}
}