0
public class NetworkCredentialHolder
{
    public NetworkCredentialHolder()
    {
        _networkCred = new NetworkCredential();
    }

    public string UserName
    {
        get { return _networkCred.UserName; }
        set { _networkCred.UserName = value; }
    }

    public string Domain
    {
        get { return _networkCred.Domain; }
        set { _networkCred.Domain = value; }
    }
}

public class SPS2003NetworkConfiguration
{
public SPS2003NetworkConfiguration()
    {
        _targetCredentials = new NetworkCredentialHolder();
    }

    private NetworkCredentialHolder _targetCredentials;
}

class Program
{
    static void Main(string[] args)
    {
        var netConfiguration = new SPS2003NetworkConfiguration();
        netConfiguration.SetGlobalCredentials("sanz", "pass@word1TestPassed");

        var sb = new StringBuilder();
        var writer = new StringWriter(sb);

        XmlSerializer serializer = new XmlSerializer(typeof(SPS2003NetworkConfiguration));
        serializer.Serialize(writer, netConfiguration);

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(sb.ToString());

        XmlNodeReader reader = new XmlNodeReader(doc.DocumentElement);
        XmlSerializer serializer = new XmlSerializer(typeof(SPS2003NetworkConfiguration));

        object obj = serializer.Deserialize(reader);

        var netConfiguration = (SPS2003NetworkConfiguration)obj;
        var encryptedPwd =      netConfiguration.TargetCredentials.SecurePassword;
    }
}

Hi, Here I have created

private NetworkCredentialHolder _targetCredentials;

when I created _targetCredntials as private, the properties defined under NetworkCrendtialHolder like UserName, Domain are not serialized unless _targetCredentials is defined as public. Is there any way I can serialize UserName, Domain while keeping _targetCredential as private ??

marc_s
  • 704,970
  • 168
  • 1,303
  • 1,425
user1370468
  • 47
  • 2
  • 3
  • 8

0 Answers0