From 8e5bcebf12f85ae464bdce4c04e2165d1de136dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AC=9D=E6=A1=82=E7=B6=B1?= Date: Mon, 29 Feb 2016 19:37:40 +0800 Subject: [PATCH] api database file --- .../Provider/ImportsAPI/APIProvider.vb | 76 ++++++++++++++++++- 1 file changed, 74 insertions(+), 2 deletions(-) diff --git a/LINQ/LINQ/Framewok/Provider/ImportsAPI/APIProvider.vb b/LINQ/LINQ/Framewok/Provider/ImportsAPI/APIProvider.vb index dfbaf7d..aaef56d 100644 --- a/LINQ/LINQ/Framewok/Provider/ImportsAPI/APIProvider.vb +++ b/LINQ/LINQ/Framewok/Provider/ImportsAPI/APIProvider.vb @@ -1,9 +1,81 @@ -Namespace Framework.Provider.ImportsAPI +Imports System.Reflection +Imports System.Text +Imports Microsoft.VisualBasic.ComponentModel +Imports Microsoft.VisualBasic.Serialization + +Namespace Framework.Provider.ImportsAPI ''' ''' 只需要记住命名空间和对应的Assembly的引用就行了 ''' - Public Class APIProvider + Public Class APIProvider : Implements ISaveHandle + Implements IDisposable + + Public Property Packages As ImportsNs() + Get + Return __nsList.ToArray + End Get + Set(value As ImportsNs()) + If value Is Nothing Then + __nsList = New List(Of ImportsNs) + Else + __nsList = value.ToList + End If + End Set + End Property + + Dim __nsList As List(Of ImportsNs) + + Public Shared ReadOnly Property DefaultFile As String = + App.ProductSharedDIR & "/API.Imports.json" + + Public Function Register(assm As Assembly) As Boolean + + End Function + + Public Function Save(Optional Path As String = "", Optional encoding As Encoding = Nothing) As Boolean Implements ISaveHandle.Save + Return Me.GetJson.SaveTo(If(String.IsNullOrEmpty(Path), DefaultFile, Path), encoding) + End Function + + Public Function Save(Optional Path As String = "", Optional encoding As Encodings = Encodings.UTF8) As Boolean Implements ISaveHandle.Save + Return Save(Path, encoding.GetEncodings) + End Function + + Sub Save() + Call Save(DefaultFile, Encodings.ASCII) + End Sub + +#Region "IDisposable Support" + Private disposedValue As Boolean ' To detect redundant calls + + ' IDisposable + Protected Overridable Sub Dispose(disposing As Boolean) + If Not Me.disposedValue Then + If disposing Then + ' TODO: dispose managed state (managed objects). + Call Save() + End If + + ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. + ' TODO: set large fields to null. + End If + Me.disposedValue = True + End Sub + + ' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources. + 'Protected Overrides Sub Finalize() + ' ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. + ' Dispose(False) + ' MyBase.Finalize() + 'End Sub + ' This code added by Visual Basic to correctly implement the disposable pattern. + Public Sub Dispose() Implements IDisposable.Dispose + ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. + Dispose(True) + ' TODO: uncomment the following line if Finalize() is overridden above. + ' GC.SuppressFinalize(Me) + End Sub +#End Region End Class End Namespace \ No newline at end of file