FireStats error processing pending hits: Internal error : no id for referrer http://www.cyberforum.ru/yaproger/thread48473.html


Сериализация с DataContractSerializer

 public static class Serializer
    {
        public static string Serialize(object obj, Type type)
        {
            DataContractSerializer serializer = new DataContractSerializer(type);
            string result = string.Empty;
            using (MemoryStream stream = new MemoryStream())
            {
                serializer.WriteObject(stream, obj);
                stream.Seek(0, SeekOrigin.Begin);
                byte[] buffer = new byte[stream.Length];
                stream.Read(buffer, 0, buffer.Length);
                result = Encoding.Default.GetString(buffer);
            }
            return result;
        }

        public static object Deserialize(string xml, Type type)
        {
            DataContractSerializer serializer = new DataContractSerializer(type);
            object result = new object();
            using (MemoryStream stream = new MemoryStream())
            {
                byte[] buffer = Encoding.Default.GetBytes(xml);
                stream.Write(buffer, 0, buffer.Length);
                stream.Seek(0, SeekOrigin.Begin);
                result = serializer.ReadObject(stream);
            }
            return result;
        }

        public static string GetType(string xml)
        {
            try
            {
                string name = System.Xml.Linq.XDocument.Parse(xml).Root.Name.ToString();
                return name.Substring(name.IndexOf("}") + 1, name.Length - name.IndexOf("}") - 1);
            }
            catch { return string.Empty; }
        }
    }

Add comment  Tagged:  , , , , , , 2 октября 2009

User IP WCF

public static string GetClientIP()
{
MessageProperties properties = OperationContext.Current.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name]
as RemoteEndpointMessageProperty;
return endpoint.Address;
}

Add comment 30 сентября 2009

WPF Mirror Effect

Зеркальное отражение контрола (в данном примере TextBox)

<Window x:Class="testVolvo.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="371" Width="498">
<Grid>
<TextBox Height="24" Margin="64,130,28,0" Name="textBox1"
VerticalAlignment="Top" Foreground="AliceBlue" Text="Show must go on!">
<TextBox.Background >
<RadialGradientBrush>
<GradientStop Color="Yellow" Offset="-0.1"/>
<GradientStop Color="WhiteSmoke" Offset="0.1"/>
<GradientStop Color="Green" Offset="1"/>
</RadialGradientBrush>
</TextBox.Background>
</TextBox>
<Rectangle Height="23" Margin="64,0,28,135" Name="rectangle1"
Stroke="Transparent" Opacity="0.4" VerticalAlignment="Bottom">
<Rectangle.Fill>
<VisualBrush Visual="{Binding ElementName=textBox1}"></VisualBrush>
</Rectangle.Fill>
<Rectangle.OpacityMask>
<LinearGradientBrush>
<GradientStop Color="Transparent" Offset="0"/>
<GradientStop Color="Yellow" Offset="0.1"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</Rectangle.OpacityMask>
<Rectangle.RenderTransform>
<ScaleTransform ScaleY="-1"></ScaleTransform>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
</Window>

Результат:

2 comments  Tagged:  , , , , 12 сентября 2009

ICQ и C#.NET - Реальность или нет?

Как оказалось весьма реально :) Спасибо что есть библиотека по имени OscarLib, в которой организованы не просто обобщенные методы обращения к серверу аськи но и даже какое-то подобие ООП :) В любом случае в виду количества проделанной за нас работы грех жаловаться. Простейший пример работы приведу ниже:

Шаг 1: Создание экземпляра

Session sess = new Session("463705186", "password"); //пишем ваш UIN и пароль к нему
            sess.SetDefaultIdentification();
            /* Далее просто подписываемся на входящие события */
            sess.LoginCompleted += new LoginCompletedHandler(sess_LoginCompleted);
            sess.Messages.MessageReceived += new MessageReceivedHandler(Messages_MessageReceived);
            sess.LoginFailed += new LoginFailedHandler(sess_LoginFailed);
            sess.WarningMessage += new WarningMessageHandler(sess_WarningMessage);
            sess.ErrorMessage += new ErrorMessageHandler(sess_ErrorMessage);
            sess.Messages.TypingNotification += new TypingNotificationEventHandler(Messages_TypingNotification);
            sess.Statuses.UserStatusReceived += new UserStatusReceivedHandler(Statuses_UserStatusReceived);
            sess.Searches.FindByEmailResults += new FindByEmailResultsHandler(Searches_FindByEmailResults);

Шаг 2: Подключение

private void button1_Click(object sender, System.EventArgs e)
		{
            Capabilities caps = Capabilities.SIMKopete | Capabilities.UTF8;
			sess.ClientCapabilities = caps;
			sess.Logon("login.icq.com", 5190);
            sess.ActivateBuddyList();
		}

Вот и все - мы подлюченны :)

Шаг 3: Посылаем сообщение

sess.Messages.SendMessage("4953456", "Приветик! :)");

Просто? Просто :) Примерчик прилагается..  Поковыряем jabber теперь-ка)

4 comments  Tagged:  , , , , , , , , , , , , 10 сентября 2009

Симметричное шифрование данных

Данный статический класс предназначен для удобного симметрического шифрования строки или массива байт:

///
/// Provides base functions for encrypting and decrypting data through the symmetric algorithm
///
public static class Cryptography
{
    ///
    /// Encrypts data
    ///
    /// Data for the encryption
    /// Encryption key
    /// Encrypted data
    public static byte[] Encrypt(byte[] data, string password)
    {
        SymmetricAlgorithm sa = Rijndael.Create();
        ICryptoTransform ct = sa.CreateEncryptor(
            (new PasswordDeriveBytes(password, null)).GetBytes(16),
            new byte[16]);

        MemoryStream ms = new MemoryStream();
        CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);

        cs.Write(data, 0, data.Length);
        cs.FlushFinalBlock();

        return ms.ToArray();
    }

    ///
    /// Encrypts data
    ///
    /// Data for the encryption
    /// Encryption key
    /// Encrypted data
    public static string Encrypt(string data, string password)
    {
        return Convert.ToBase64String(Encrypt(Encoding.UTF8.GetBytes(data), password));
    }

    ///
    /// Decrypts data
    ///
    /// Data for the decryption
    /// Decryption key
    /// Decrypted data
    static public byte[] Decrypt(byte[] data, string password)
    {
        BinaryReader br = new BinaryReader(InternalDecrypt(data, password));
        return br.ReadBytes((int)br.BaseStream.Length);
    }

    ///
    /// Decrypts data
    ///
    /// Data for the decryption
    /// Decryption key
    /// Decrypted data
    static public string Decrypt(string data, string password)
    {
        CryptoStream cs = InternalDecrypt(Convert.FromBase64String(data), password);
        StreamReader sr = new StreamReader(cs);
        return sr.ReadToEnd();
    }

    static CryptoStream InternalDecrypt(byte[] data, string password)
    {
        SymmetricAlgorithm sa = Rijndael.Create();
        ICryptoTransform ct = sa.CreateDecryptor(
            (new PasswordDeriveBytes(password, null)).GetBytes(16),
            new byte[16]);

        MemoryStream ms = new MemoryStream(data);
        return new CryptoStream(ms, ct, CryptoStreamMode.Read);
    }
}

2 comments  Tagged:  , , , , , 10 сентября 2009


Метки