| import{_ as o,r as i,o as r,c,a as p,d as t,e as s,b as e,f as a}from"./app-32WlL3ZZ.js";const l={},d=t("h1",{id:"c-native-api",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#c-native-api","aria-hidden":"true"},"#"),s(" C# Native API")],-1),u={href:"https://github.com/apache/iotdb-client-csharp/",target:"_blank",rel:"noopener noreferrer"},h=t("h2",{id:"installation",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#installation","aria-hidden":"true"},"#"),s(" Installation")],-1),k=t("h3",{id:"install-from-nuget-package",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#install-from-nuget-package","aria-hidden":"true"},"#"),s(" Install from NuGet Package")],-1),m={href:"https://www.nuget.org/packages/Apache.IoTDB/",target:"_blank",rel:"noopener noreferrer"},g=a(`<div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code>dotnet <span class="token function">add</span> package Apache.IoTDB |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Note that the <code>Apache.IoTDB</code> package only supports versions of the <code>.net framework 4.6.1</code> greater than <code>4.6.1</code>.</p><h2 id="prerequisites" tabindex="-1"><a class="header-anchor" href="#prerequisites" aria-hidden="true">#</a> Prerequisites</h2><pre><code>.NET SDK Version >= 5.0 |
| .NET Framework >= 4.6.1 |
| </code></pre><h2 id="how-to-use-the-client-quick-start" tabindex="-1"><a class="header-anchor" href="#how-to-use-the-client-quick-start" aria-hidden="true">#</a> How to Use the Client (Quick Start)</h2>`,5),b={href:"https://github.com/apache/iotdb-client-csharp/tree/main/Apache-IoTDB-Client-CSharp-UserCase",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/apache/iotdb-client-csharp",target:"_blank",rel:"noopener noreferrer"},_={href:"https://github.com/apache/iotdb-client-csharp/tree/main/samples/Apache.IoTDB.Samples",target:"_blank",rel:"noopener noreferrer"},y=a(`<h2 id="developer-environment-requirements-for-iotdb-client-csharp" tabindex="-1"><a class="header-anchor" href="#developer-environment-requirements-for-iotdb-client-csharp" aria-hidden="true">#</a> Developer environment requirements for iotdb-client-csharp</h2><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>.NET SDK Version >= 5.0 |
| .NET Framework >= 4.6.1 |
| ApacheThrift >= 0.14.1 |
| NLog >= 4.7.9 |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="os" tabindex="-1"><a class="header-anchor" href="#os" aria-hidden="true">#</a> OS</h3><ul><li>Linux, Macos or other unix-like OS</li><li>Windows+bash(WSL, cygwin, Git Bash)</li></ul><h3 id="command-line-tools" tabindex="-1"><a class="header-anchor" href="#command-line-tools" aria-hidden="true">#</a> Command Line Tools</h3><ul><li>dotnet CLI</li><li>Thrift</li></ul><h2 id="basic-interface-description" tabindex="-1"><a class="header-anchor" href="#basic-interface-description" aria-hidden="true">#</a> Basic interface description</h2><p>The Session interface is semantically identical to other language clients</p><div class="language-csharp line-numbers-mode" data-ext="cs"><pre class="language-csharp"><code><span class="token comment">// Parameters</span> |
| <span class="token class-name"><span class="token keyword">string</span></span> host <span class="token operator">=</span> <span class="token string">"localhost"</span><span class="token punctuation">;</span> |
| <span class="token class-name"><span class="token keyword">int</span></span> port <span class="token operator">=</span> <span class="token number">6667</span><span class="token punctuation">;</span> |
| <span class="token class-name"><span class="token keyword">int</span></span> pool_size <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span> |
| |
| <span class="token comment">// Init Session</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> session_pool <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">SessionPool</span><span class="token punctuation">(</span>host<span class="token punctuation">,</span> port<span class="token punctuation">,</span> pool_size<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| |
| <span class="token comment">// Open Session</span> |
| <span class="token keyword">await</span> session_pool<span class="token punctuation">.</span><span class="token function">Open</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
| |
| <span class="token comment">// Create TimeSeries </span> |
| <span class="token keyword">await</span> session_pool<span class="token punctuation">.</span><span class="token function">CreateTimeSeries</span><span class="token punctuation">(</span><span class="token string">"root.test_group.test_device.ts1"</span><span class="token punctuation">,</span> TSDataType<span class="token punctuation">.</span>TEXT<span class="token punctuation">,</span> TSEncoding<span class="token punctuation">.</span>PLAIN<span class="token punctuation">,</span> Compressor<span class="token punctuation">.</span>UNCOMPRESSED<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| <span class="token keyword">await</span> session_pool<span class="token punctuation">.</span><span class="token function">CreateTimeSeries</span><span class="token punctuation">(</span><span class="token string">"root.test_group.test_device.ts2"</span><span class="token punctuation">,</span> TSDataType<span class="token punctuation">.</span>BOOLEAN<span class="token punctuation">,</span> TSEncoding<span class="token punctuation">.</span>PLAIN<span class="token punctuation">,</span> Compressor<span class="token punctuation">.</span>UNCOMPRESSED<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| <span class="token keyword">await</span> session_pool<span class="token punctuation">.</span><span class="token function">CreateTimeSeries</span><span class="token punctuation">(</span><span class="token string">"root.test_group.test_device.ts3"</span><span class="token punctuation">,</span> TSDataType<span class="token punctuation">.</span>INT32<span class="token punctuation">,</span> TSEncoding<span class="token punctuation">.</span>PLAIN<span class="token punctuation">,</span> Compressor<span class="token punctuation">.</span>UNCOMPRESSED<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| |
| <span class="token comment">// Insert Record</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> measures <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">List<span class="token punctuation"><</span><span class="token keyword">string</span><span class="token punctuation">></span></span><span class="token punctuation">{</span><span class="token string">"ts1"</span><span class="token punctuation">,</span> <span class="token string">"ts2"</span><span class="token punctuation">,</span> <span class="token string">"ts3"</span><span class="token punctuation">}</span><span class="token punctuation">;</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> values <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">List<span class="token punctuation"><</span><span class="token keyword">object</span><span class="token punctuation">></span></span> <span class="token punctuation">{</span> <span class="token string">"test_text"</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span><span class="token number">123</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> timestamp <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> rowRecord <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">RowRecord</span><span class="token punctuation">(</span>timestamp<span class="token punctuation">,</span> values<span class="token punctuation">,</span> measures<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| <span class="token keyword">await</span> session_pool<span class="token punctuation">.</span><span class="token function">InsertRecordAsync</span><span class="token punctuation">(</span><span class="token string">"root.test_group.test_device"</span><span class="token punctuation">,</span> rowRecord<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| |
| <span class="token comment">// Insert Tablet</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> timestamp_lst <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">List<span class="token punctuation"><</span><span class="token keyword">long</span><span class="token punctuation">></span></span><span class="token punctuation">{</span> timestamp <span class="token operator">+</span> <span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> value_lst <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">List<span class="token punctuation"><</span><span class="token keyword">object</span><span class="token punctuation">></span></span> <span class="token punctuation">{</span><span class="token string">"iotdb"</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span> <span class="token number">12</span><span class="token punctuation">}</span><span class="token punctuation">;</span> |
| <span class="token class-name"><span class="token keyword">var</span></span> tablet <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">Tablet</span><span class="token punctuation">(</span><span class="token string">"root.test_group.test_device"</span><span class="token punctuation">,</span> measures<span class="token punctuation">,</span> value_lst<span class="token punctuation">,</span> timestamp_ls<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| <span class="token keyword">await</span> session_pool<span class="token punctuation">.</span><span class="token function">InsertTabletAsync</span><span class="token punctuation">(</span>tablet<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| |
| <span class="token comment">// Close Session</span> |
| <span class="token keyword">await</span> session_pool<span class="token punctuation">.</span><span class="token function">Close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="row-record" tabindex="-1"><a class="header-anchor" href="#row-record" aria-hidden="true">#</a> <strong>Row Record</strong></h3><ul><li>Encapsulate and abstract the <code>record</code> data in <strong>IoTDB</strong></li><li>e.g.</li></ul><table><thead><tr><th>timestamp</th><th>status</th><th>temperature</th></tr></thead><tbody><tr><td>1</td><td>0</td><td>20</td></tr></tbody></table><ul><li>Construction:</li></ul><div class="language-csharp line-numbers-mode" data-ext="cs"><pre class="language-csharp"><code><span class="token class-name"><span class="token keyword">var</span></span> rowRecord <span class="token operator">=</span> |
| <span class="token keyword">new</span> <span class="token constructor-invocation class-name">RowRecord</span><span class="token punctuation">(</span><span class="token class-name"><span class="token keyword">long</span></span> timestamp<span class="token punctuation">,</span> <span class="token class-name">List<span class="token punctuation"><</span><span class="token keyword">object</span><span class="token punctuation">></span></span> values<span class="token punctuation">,</span> <span class="token class-name">List<span class="token punctuation"><</span><span class="token keyword">string</span><span class="token punctuation">></span></span> measurements<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="tablet" tabindex="-1"><a class="header-anchor" href="#tablet" aria-hidden="true">#</a> <strong>Tablet</strong></h3><ul><li>A data structure similar to a table, containing several non-empty data blocks of a device's rows。</li><li>e.g.</li></ul><table><thead><tr><th>time</th><th>status</th><th>temperature</th></tr></thead><tbody><tr><td>1</td><td>0</td><td>20</td></tr><tr><td>2</td><td>0</td><td>20</td></tr><tr><td>3</td><td>3</td><td>21</td></tr></tbody></table><ul><li>Construction:</li></ul><div class="language-csharp line-numbers-mode" data-ext="cs"><pre class="language-csharp"><code><span class="token class-name"><span class="token keyword">var</span></span> tablet <span class="token operator">=</span> |
| <span class="token function">Tablet</span><span class="token punctuation">(</span><span class="token class-name"><span class="token keyword">string</span></span> deviceId<span class="token punctuation">,</span> <span class="token class-name">List<span class="token punctuation"><</span><span class="token keyword">string</span><span class="token punctuation">></span></span> measurements<span class="token punctuation">,</span> <span class="token class-name">List<span class="token punctuation"><</span>List<span class="token punctuation"><</span><span class="token keyword">object</span><span class="token punctuation">></span><span class="token punctuation">></span></span> values<span class="token punctuation">,</span> <span class="token class-name">List<span class="token punctuation"><</span><span class="token keyword">long</span><span class="token punctuation">></span></span> timestamps<span class="token punctuation">)</span><span class="token punctuation">;</span> |
| </code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="api" tabindex="-1"><a class="header-anchor" href="#api" aria-hidden="true">#</a> <strong>API</strong></h2><h3 id="basic-api" tabindex="-1"><a class="header-anchor" href="#basic-api" aria-hidden="true">#</a> <strong>Basic API</strong></h3><table><thead><tr><th>api name</th><th>parameters</th><th>notes</th><th>use example</th></tr></thead><tbody><tr><td>Open</td><td>bool</td><td>open session</td><td>session_pool.Open(false)</td></tr><tr><td>Close</td><td>null</td><td>close session</td><td>session_pool.Close()</td></tr><tr><td>IsOpen</td><td>null</td><td>check if session is open</td><td>session_pool.IsOpen()</td></tr><tr><td>OpenDebugMode</td><td>LoggingConfiguration=null</td><td>open debug mode</td><td>session_pool.OpenDebugMode()</td></tr><tr><td>CloseDebugMode</td><td>null</td><td>close debug mode</td><td>session_pool.CloseDebugMode()</td></tr><tr><td>SetTimeZone</td><td>string</td><td>set time zone</td><td>session_pool.SetTimeZone("+08:00")</td></tr><tr><td>GetTimeZone</td><td>null</td><td>get time zone</td><td>session_pool.GetTimeZone()</td></tr></tbody></table><h3 id="record-api" tabindex="-1"><a class="header-anchor" href="#record-api" aria-hidden="true">#</a> <strong>Record API</strong></h3><table><thead><tr><th>api name</th><th>parameters</th><th>notes</th><th>use example</th></tr></thead><tbody><tr><td>InsertRecordAsync</td><td>string, RowRecord</td><td>insert single record</td><td>session_pool.InsertRecordAsync("root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE", new RowRecord(1, values, measures));</td></tr><tr><td>InsertRecordsAsync</td><td>List<string>, List<RowRecord></td><td>insert records</td><td>session_pool.InsertRecordsAsync(device_ids, rowRecords)</td></tr><tr><td>InsertRecordsOfOneDeviceAsync</td><td>string, List<RowRecord></td><td>insert records of one device</td><td>session_pool.InsertRecordsOfOneDeviceAsync(device_id, rowRecords)</td></tr><tr><td>InsertRecordsOfOneDeviceSortedAsync</td><td>string, List<RowRecord></td><td>insert sorted records of one device</td><td>InsertRecordsOfOneDeviceSortedAsync(deviceId, sortedRowRecords);</td></tr><tr><td>TestInsertRecordAsync</td><td>string, RowRecord</td><td>test insert record</td><td>session_pool.TestInsertRecordAsync("root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE", rowRecord)</td></tr><tr><td>TestInsertRecordsAsync</td><td>List<string>, List<RowRecord></td><td>test insert record</td><td>session_pool.TestInsertRecordsAsync(device_ids, rowRecords)</td></tr></tbody></table><h3 id="tablet-api" tabindex="-1"><a class="header-anchor" href="#tablet-api" aria-hidden="true">#</a> <strong>Tablet API</strong></h3><table><thead><tr><th>api name</th><th>parameters</th><th>notes</th><th>use example</th></tr></thead><tbody><tr><td>InsertTabletAsync</td><td>Tablet</td><td>insert single tablet</td><td>session_pool.InsertTabletAsync(tablet)</td></tr><tr><td>InsertTabletsAsync</td><td>List<Tablet></td><td>insert tablets</td><td>session_pool.InsertTabletsAsync(tablets)</td></tr><tr><td>TestInsertTabletAsync</td><td>Tablet</td><td>test insert tablet</td><td>session_pool.TestInsertTabletAsync(tablet)</td></tr><tr><td>TestInsertTabletsAsync</td><td>List<Tablet></td><td>test insert tablets</td><td>session_pool.TestInsertTabletsAsync(tablets)</td></tr></tbody></table><h3 id="sql-api" tabindex="-1"><a class="header-anchor" href="#sql-api" aria-hidden="true">#</a> <strong>SQL API</strong></h3><table><thead><tr><th>api name</th><th>parameters</th><th>notes</th><th>use example</th></tr></thead><tbody><tr><td>ExecuteQueryStatementAsync</td><td>string</td><td>execute sql query statement</td><td>session_pool.ExecuteQueryStatementAsync("select * from root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE where time<15");</td></tr><tr><td>ExecuteNonQueryStatementAsync</td><td>string</td><td>execute sql nonquery statement</td><td>session_pool.ExecuteNonQueryStatementAsync( "create timeseries root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE.status with datatype=BOOLEAN,encoding=PLAIN")</td></tr></tbody></table><h3 id="scheam-api" tabindex="-1"><a class="header-anchor" href="#scheam-api" aria-hidden="true">#</a> <strong>Scheam API</strong></h3><table><thead><tr><th>api name</th><th>parameters</th><th>notes</th><th>use example</th></tr></thead><tbody><tr><td>SetStorageGroup</td><td>string</td><td>set storage group</td><td>session_pool.SetStorageGroup("root.97209_TEST_CSHARP_CLIENT_GROUP_01")</td></tr><tr><td>CreateTimeSeries</td><td>string, TSDataType, TSEncoding, Compressor</td><td>create time series</td><td>session_pool.CreateTimeSeries("root.97209_TEST_CSHARP_CLIENT_GROUP_01", data_type, encoding, compressor)</td></tr><tr><td>DeleteStorageGroupAsync</td><td>string</td><td>delete single storage group</td><td>session_pool.DeleteStorageGroupAsync("root.97209_TEST_CSHARP_CLIENT_GROUP_01")</td></tr><tr><td>DeleteStorageGroupsAsync</td><td>List<string></td><td>delete storage group</td><td>session_pool.DeleteStorageGroupAsync("root.97209_TEST_CSHARP_CLIENT_GROUP")</td></tr><tr><td>CreateMultiTimeSeriesAsync</td><td>List<string>, List<TSDataType> , List<TSEncoding> , List<Compressor></td><td>create multi time series</td><td>session_pool.CreateMultiTimeSeriesAsync(ts_path_lst, data_type_lst, encoding_lst, compressor_lst);</td></tr><tr><td>DeleteTimeSeriesAsync</td><td>List<string></td><td>delete time series</td><td>session_pool.DeleteTimeSeriesAsync(ts_path_lst)</td></tr><tr><td>DeleteTimeSeriesAsync</td><td>string</td><td>delete time series</td><td>session_pool.DeleteTimeSeriesAsync("root.97209_TEST_CSHARP_CLIENT_GROUP_01")</td></tr><tr><td>DeleteDataAsync</td><td>List<string>, long, long</td><td>delete data</td><td>session_pool.DeleteDataAsync(ts_path_lst, 2, 3)</td></tr></tbody></table><h3 id="other-api" tabindex="-1"><a class="header-anchor" href="#other-api" aria-hidden="true">#</a> <strong>Other API</strong></h3><table><thead><tr><th>api name</th><th>parameters</th><th>notes</th><th>use example</th></tr></thead><tbody><tr><td>CheckTimeSeriesExistsAsync</td><td>string</td><td>check if time series exists</td><td>session_pool.CheckTimeSeriesExistsAsync(time series)</td></tr></tbody></table>`,32),T={href:"https://github.com/apache/iotdb-client-csharp/tree/main/samples/Apache.IoTDB.Samples",target:"_blank",rel:"noopener noreferrer"},w=a('<h2 id="sessionpool" tabindex="-1"><a class="header-anchor" href="#sessionpool" aria-hidden="true">#</a> SessionPool</h2><p>In order to execute concurrent client requests, we provide a <code>SessionPool</code> for the native interface.<br> Since <code>SessionPool</code> itself is a superset of <code>Session</code>, as soon as <code>SessionPool</code> is instantiated with a <code>pool_size</code> parameter set to 1, it reverts to the original <code>Session</code>.</p><p>We use the <code>ConcurrentQueue</code> data structure to encapsulate a client queue to maintain multiple connections with the server.<br> When the <code>Open()</code> interface is called, a specified number of clients are created and stored in the queue.<br> Synchronous access to the queue is achieved through the <code>System.Threading.Monitor</code> class.</p><p>When a request is executed, it will try to find an idle client connection from the Connection pool.<br> If there is no idle connection, the program will wait until there is an idle connection available and use that.</p><p>When a connection is finished executing a request, it will automatically be returned to the pool and be available for processing other requests.</p>',5);function S(f,A){const n=i("ExternalLinkIcon");return r(),c("div",null,[p(` |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| `),d,t("p",null,[s("The Git repository for the C# Native API client is located "),t("a",u,[s("here"),e(n)])]),h,k,t("p",null,[s("We have prepared Nuget Package for C# users. Users can directly install the client through .NET CLI. "),t("a",m,[s("The link of our NuGet Package is here"),e(n)]),s(". Run the following command in the command line to complete installation")]),g,t("p",null,[s("Users can quickly get started by referring to the use cases under the "),t("a",b,[s("Apache-IoTDB-Client-CSharp-UserCase"),e(n)]),s(" directory in the "),t("a",v,[s("iotdb-client-csharp Git repository"),e(n)]),s(". These use cases serve as a useful resource for getting familiar with the client's functionality and capabilities.")]),t("p",null,[s("For those who wish to delve deeper into the client's usage and explore more advanced features, the "),t("a",_,[s("samples"),e(n)]),s(" directory in the same repository contains additional code samples.")]),y,t("p",null,[t("a",T,[s("e.g."),e(n)])]),w])}const C=o(l,[["render",S],["__file","Programming-CSharp-Native-API.html.vue"]]);export{C as default}; |