本文整理汇总了C#中BSONDocument.ToByteArray方法的典型用法代码示例。如果您正苦于以下问题:C# BSONDocument.ToByteArray方法的具体用法?C# BSONDocument.ToByteArray怎么用?C# BSONDocument.ToByteArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BSONDocument
的用法示例。
在下文中一共展示了BSONDocument.ToByteArray方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EJDBQuery
internal EJDBQuery(EJDB jb, BSONDocument qdoc, string defaultcollection = null)
{
_qptr = _ejdbcreatequery(jb.DBPtr, qdoc.ToByteArray());
if (_qptr == IntPtr.Zero) {
throw new EJDBQueryException(jb);
}
_jb = jb;
_defaultcollection = defaultcollection;
}
示例2: Save
bool Save(IntPtr cptr, BSONDocument doc, bool merge)
{
bool rv;
BSONValue bv = doc.GetBSONValue("_id");
byte[] bsdata = doc.ToByteArray();
byte[] oiddata = new byte[12];
//static extern bool _ejdbsavebson([In] IntPtr coll, [In] byte[] bsdata, [Out] byte[] oid, bool merge);
rv = _ejdbsavebson(cptr, bsdata, oiddata, merge);
if (rv && bv == null) {
doc.SetOID("_id", new BSONOid(oiddata));
}
if (_throwonfail && !rv) {
throw new EJDBException(this);
}
return rv;
}
示例3: SetHints
/// <summary>
/// Sets the query hints.
/// </summary>
/// <remarks>
/// Replaces previous hints associated with this query.
/// </remarks>
/// <returns>This query object.</returns>
/// <param name="hints">Hints document.</param>
public EJDBQuery SetHints(BSONDocument hints)
{
CheckDisposed();
//0F-00-00-00-10-24-6D-61-78-00-0A-00-00-00-00
//static extern IntPtr _ejdbqueryhints([In] IntPtr jb, [In] IntPtr qptr, [In] byte[] bsdata);
IntPtr qptr = _ejdbqueryhints(_jb.DBPtr, _qptr, hints.ToByteArray());
if (qptr == IntPtr.Zero) {
throw new EJDBQueryException(_jb);
}
_hints = hints;
return this;
}
示例4: Command
/// <summary>
/// Executes EJDB command.
/// </summary>
/// <remarks>
/// Supported commands:
///
/// 1) Exports database collections data. See ejdbexport() method.
///
/// "export" : {
/// "path" : string, //Exports database collections data
/// "cnames" : [string array]|null, //List of collection names to export
/// "mode" : int|null //Values: null|`JBJSONEXPORT` See ejdb.h#ejdbexport() method
/// }
///
/// Command response:
/// {
/// "log" : string, //Diagnostic log about executing this command
/// "error" : string|null, //ejdb error message
/// "errorCode" : int|0, //ejdb error code
/// }
///
/// 2) Imports previously exported collections data into ejdb.
///
/// "import" : {
/// "path" : string //The directory path in which data resides
/// "cnames" : [string array]|null, //List of collection names to import
/// "mode" : int|null //Values: null|`JBIMPORTUPDATE`|`JBIMPORTREPLACE` See ejdb.h#ejdbimport() method
/// }
///
/// Command response:
/// {
/// "log" : string, //Diagnostic log about executing this command
/// "error" : string|null, //ejdb error message
/// "errorCode" : int|0, //ejdb error code
/// }
/// </remarks>
/// <param name="cmd">Command object</param>
/// <returns>Command response.</returns>
public BSONDocument Command(BSONDocument cmd)
{
CheckDisposed();
byte[] cmdata = cmd.ToByteArray();
//internal static extern IntPtr _ejdbcommand([In] IntPtr db, [In] byte[] cmd);
IntPtr cmdret = _ejdbcommand(_db, cmdata);
if (cmdret == IntPtr.Zero) {
return null;
}
byte[] bsdata = BsonPtrIntoByteArray(cmdret);
if (bsdata.Length == 0) {
return null;
}
BSONIterator it = new BSONIterator(bsdata);
return it.ToBSONDocument();
}
示例5: TestIterate1
public void TestIterate1()
{
var doc = new BSONDocument();
doc["a"] = "av";
doc["bb"] = 24;
//doc["ccc"] = BSONDocument.ValueOf(new{na1 = 1, nb = "2"});
//doc["d"] = new BSONOid("51b9f3af98195c4600000000");
//17-00-00-00 +4
//02-61-00-03-00-00-00-61-76-00 +10
//10-62-62-00-18-00-00-00 +8
//00 +1
Assert.AreEqual("17-00-00-00-02-61-00-03-00-00-00-61-76-00-10-62-62-00-18-00-00-00-00",
doc.ToDebugDataString());
BSONIterator it = new BSONIterator(doc);
Assert.AreEqual(doc.ToByteArray().Length, it.DocumentLength);
var c = "";
while (it.Next() != BSONType.EOO) {
c += it.CurrentKey;
}
Assert.AreEqual("abb", c);
it.Dispose();
it = new BSONIterator(doc);
var cnt = 0;
while (it.Next() != BSONType.EOO) {
BSONValue bv = it.FetchCurrentValue();
Assert.IsNotNull(bv);
if (cnt == 0) {
Assert.IsTrue(bv.BSONType == BSONType.STRING);
Assert.IsTrue(bv.Key == "a");
Assert.AreEqual("av", bv.Value);
}
if (cnt == 1) {
Assert.IsTrue(bv.BSONType == BSONType.INT);
Assert.IsTrue(bv.Key == "bb");
Assert.AreEqual(24, bv.Value);
}
cnt++;
}
}
示例6: TestSerialize1
public void TestSerialize1()
{
byte[] bdata;
BSONDocument doc = new BSONDocument();
doc.SetNumber("0", 1);
//0C-00-00-00 len
//10 type
//30-00 key
//01-00-00-00 int val
//00 zero term
bdata = doc.ToByteArray();
Assert.AreEqual("0C-00-00-00-10-30-00-01-00-00-00-00", doc.ToDebugDataString());
Assert.AreEqual(bdata.Length, (int) Convert.ToByte(doc.ToDebugDataString().Substring(0, 2), 16));
BSONDocument doc2 = new BSONDocument(doc.ToByteArray());
Assert.AreEqual(1, doc2.KeysCount);
int c = 0;
foreach (BSONValue bv in doc2) {
c++;
Assert.IsNotNull(bv);
Assert.AreEqual(BSONType.INT, bv.BSONType);
Assert.AreEqual("0", bv.Key);
Assert.AreEqual(1, bv.Value);
}
Assert.That(c > 0);
doc2.SetNumber("0", 2);
Assert.AreEqual(1, doc2.KeysCount);
object ival = doc2["0"];
Assert.IsInstanceOf(typeof(int), ival);
Assert.AreEqual(2, ival);
doc2.SetNumber("1", Int32.MaxValue);
//13-00-00-00
//10
//30-00
//02-00-00-00
//10-31-00
//FF-FF-FF-7F
//00
Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
doc2.ToDebugDataString());
doc2 = new BSONDocument(doc2);
Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
doc2.ToDebugDataString());
doc2 = new BSONDocument(doc2.ToByteArray());
Assert.AreEqual("13-00-00-00-10-30-00-02-00-00-00-10-31-00-FF-FF-FF-7F-00",
doc2.ToDebugDataString());
doc = new BSONDocument();
doc["a"] = 1;
Assert.AreEqual("0C-00-00-00-10-61-00-01-00-00-00-00", doc.ToDebugDataString());
}