This repository was archived by the owner on Oct 17, 2018. It is now read-only.
This repository was archived by the owner on Oct 17, 2018. It is now read-only.
Feature Request: ctor injection IXmlDecryptor not working as well as for IXmlEncryptor #154
Closed
Description
Consider the following replacements for IXmlEncryptor
and IXmlDecryptor
...
public class CustomXmlEncryptor : IXmlEncryptor
{
public CustomXmlEncryptor()
{
}
public CustomXmlEncryptor(IOptions<CustomDataProtectionOptions> dataProtectionOptions)
{
_key = dataProtectionOptions.Value.Key;
}
private byte[] _key;
public EncryptedXmlInfo Encrypt(XElement plaintextElement)
{
// Code here uses _key to encrypt
}
}
public class CustomXmlDecryptor : IXmlDecryptor
{
public CustomXmlDecryptor()
{
}
public CustomXmlDecryptor(IOptions<CustomDataProtectionOptions> dataProtectionOptions)
{
_key = dataProtectionOptions.Value.Key;
}
private byte[] _key;
public XElement Decrypt(XElement encryptedElement)
{
// Code here uses _key to decrypt
}
}
Both derived classes require a parameterless ctor. The CustomXmlEncryptor
always gets the correct _key
value via DI with my options-based ctor. However, the CustomXmlDecryptor
always gets created using its parameterless ctor, thus it never gets a value in _key
from DI.
I have a pathetic workaround using a global static, but I'd like to get that CustomXmlDecryptor
on DI. Am I doing it wrong? Is this an unknown bug? Is this a known bug covered by Refactor DI support in DataProtection (DataProtection #134)?
Metadata
Metadata
Assignees
Labels
No labels