ArcGIS Pro 3.1 API Reference Guide
ArcGIS.Core.Data Namespace / Geodatabase Class / IsVersioningSupported Method
Example Version

IsVersioningSupported Method
Gets a value indicating whether this geodatabase supports versioning. This method must be called on the MCT. Use QueuedTask.Run.
Syntax
public bool IsVersioningSupported()

Return Value

true if this geodatabase supports versioning and was not returned from HistoricalVersion.Connect. false otherwise.
Exceptions
ExceptionDescription
No valid geodatabase has been opened prior to invoking this operation.
Example
Connecting to a Version
public Geodatabase ConnectToVersion(Geodatabase geodatabase, string versionName)
{
  Geodatabase connectedVersion = null;

  if (geodatabase.IsVersioningSupported())
  {
    using (VersionManager versionManager = geodatabase.GetVersionManager())
    using (Version version = versionManager.GetVersion(versionName))
    {
      connectedVersion = version.Connect();
    }
  }
  return connectedVersion;
}
Reconciling and Posting a Version with its Parent in separate edit sessions
public void ReconcileAndPost(Geodatabase geodatabase)
{
  // Get a reference to our version and our parent
  if (geodatabase.IsVersioningSupported())
  {
    using (VersionManager versionManager = geodatabase.GetVersionManager())
    using (Version currentVersion = versionManager.GetCurrentVersion())
    using (Version parentVersion = currentVersion.GetParent())
    {

      //// Create a ReconcileDescription object
      //At 2.x - 
      //ReconcileDescription reconcileDescription = new ReconcileDescription(parentVersion);
      //reconcileDescription.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      //reconcileDescription.WithPost = true;

      //// Reconcile and post
      //ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileDescription);

      // ReconcileResult.HasConflicts can be checked as-needed

      // Create a ReconcileOptions object
      ReconcileOptions reconcileOptions = new ReconcileOptions(parentVersion);
      reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByRow; //Default
      reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorTargetVersion;//or FavorEditVersion

      // Reconcile
      ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileOptions);
      if (!reconcileResult.HasConflicts)
      {
        //No conflicts, perform the post
        PostOptions postOptions = new PostOptions(parentVersion);
        //var postOptions = new PostOptions(); for default version
        postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous;//Default
        currentVersion.Post(postOptions);
      }

    }
  }
}
Reconciling and Posting a Version with its Parent in the same edit session
public void ReconcileAndPost2(Geodatabase geodatabase)
{
  // Get a reference to our version and our parent
  if (geodatabase.IsVersioningSupported())
  {
    using (VersionManager versionManager = geodatabase.GetVersionManager())
    using (Version currentVersion = versionManager.GetCurrentVersion())
    using (Version parentVersion = currentVersion.GetParent())
    {

      //// Create a ReconcileDescription object
      //At 2.x - 
      //ReconcileDescription reconcileDescription = new ReconcileDescription(parentVersion);
      //reconcileDescription.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      //reconcileDescription.WithPost = true;

      //// Reconcile and post
      //ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileDescription);

      // ReconcileResult.HasConflicts can be checked as-needed

      // Create a ReconcileOptions object
      ReconcileOptions reconcileOptions = new ReconcileOptions(parentVersion);
      reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found
      reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByRow; //Default
      reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorTargetVersion;//or FavorEditVersion

      PostOptions postOptions = new PostOptions(parentVersion);
      //var postOptions = new PostOptions(); for default version
      postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous;//Default

      // Reconcile
      ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileOptions, postOptions);
      if (reconcileResult.HasConflicts)
      {
        //TODO resolve conflicts

      }

    }
  }
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.0 or higher.
See Also