[CheckId] CA1049 [Warning] CA1049: Types that own native resources should be disposable [Description] 
Types that allocate unmanaged resources should implement IDisposable to enable callers to release those resources on demand and to shorten the lifetimes of the objects that hold the resources.