public void _01_DisposeAttributeTest() { Helpers.CheckPlatform(); // Unmanaged memory for attribute value stored in low level CK_ATTRIBUTE struct // is allocated by constructor of ObjectAttribute class. ObjectAttribute attr1 = new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_DATA); // Do something interesting with attribute // This unmanaged memory is freed by Dispose() method. attr1.Dispose(); // ObjectAttribute class can be used in using statement which defines a scope // at the end of which an object will be disposed (and unmanaged memory freed). using (ObjectAttribute attr2 = new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_DATA)) { // Do something interesting with attribute } #pragma warning disable 0219 // Explicit calling of Dispose() method can also be ommitted. ObjectAttribute attr3 = new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_DATA); // Do something interesting with attribute // Dispose() method will be called (and unmanaged memory freed) by GC eventually // but we cannot be sure when will this occur. #pragma warning restore 0219 }
public void _01_DisposeAttributeTest() { // Unmanaged memory for attribute value stored in low level CK_ATTRIBUTE struct // is allocated by constructor of ObjectAttribute class. ObjectAttribute attr1 = new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_DATA); // Do something interesting with attribute // This unmanaged memory is freed by Dispose() method. attr1.Dispose(); // ObjectAttribute class can be used in using statement which defines a scope // at the end of which an object will be disposed (and unmanaged memory freed). using (ObjectAttribute attr2 = new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_DATA)) { // Do something interesting with attribute } #pragma warning disable 0219 // Explicit calling of Dispose() method can also be ommitted. ObjectAttribute attr3 = new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_DATA); // Do something interesting with attribute // Dispose() method will be called (and unmanaged memory freed) by GC eventually // but we cannot be sure when will this occur. #pragma warning restore 0219 }